On-line: Pasha, PSP, гостей 2. Всего: 4 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 1
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 21.04.09 15:43. Заголовок: Помогите советом начинающему...


Тут вот надумал переползти на xHarbour. Возникла следующая проблема: имена всех функций и подпрограмм дополняются префиксом HB_FUN_. А можно ли этого избежать так, чтобы остались родные, начальные имена. У меня весь софт построен на скриптах, в которых уже стоят вызовы функций и процедур по привычным, родным именам. И перелопатить везде в 5000 текстовых файлах-скриптах вызовы функций и поменять на новые - задача крайне утомительная с непонятной перспективой на успех.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 294 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


постоянный участник


Пост N: 12
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 04.05.09 15:12. Заголовок: Добрый день, уважаем..


Добрый день, уважаемые.
Достиг определенных успехов. Все мои проекты заработали, правда пока без ADS, но уже какой прогресс. В процессе перевода столкнулся с неожиданными нестыковками клиппера и Харбора, но пока все обнаруженное преодолел.
Остались некоторые детали и прошу подсказать.
1. Имеется ли функция чтения-записи определенных ячеек памяти (аналог FT_PEEK, FT_POKE).
2. Имеется ли функция вызова прерывания и передачи-получения параметров (аналог FT_INT86)
3. Как определить состояние клавиатуры (нажатие левого-правого CTRL, SHIFT).

Имеются ли какие-нибудь описания функций Харбора и их параметров. А то только в .CH и .H файлах описание прототипов и то не очень информативное. Есть ли описания библиотек, а то их так много и все с интригующими названиями, а для чего какая - не всегда ясно. И вообще, где взять побольше описаний? А то я уже почти переехал на Харбор, но как-то еще не осознал полного кайфа кроме того, что это стало чисто 32-х разрядным приложением. И как он вообще насчет стабильности и корректности?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1196
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.05.09 15:56. Заголовок: Urri 1. Смотри библ..


Urri
1. Смотри библиотеку LIBNF.LIB
2. Смотри пункт 1
3. Смотри библиотеку СT.LIBUrri пишет:

 цитата:
Имеются ли какие-нибудь описания функций Харбора и их параметров


Где то лежала в этой ветке документация.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 649
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 04.05.09 16:38. Заголовок: Помогите советом нач..


Помогите советом начинающему...

Urri пишет:

 цитата:
1. Имеется ли функция чтения-записи определенных ячеек памяти (аналог FT_PEEK, FT_POKE).
2. Имеется ли функция вызова прерывания и передачи-получения параметров (аналог FT_INT86)


Дружеский совет - забудьте это. Вот сегодня с Clipper на xHarbour, а завтра с Windows на Solaris и что опять изворачиваться? Максимально используйте встроенные функции языка (читай переносимые), поменьше нестрандартных решений и будет вам счастье.

Urri пишет:

 цитата:
но как-то еще не осознал полного кайфа кроме того, что это стало чисто 32-х разрядным приложением.


Потому что программируете вы еще на Clipper, найдите документацию и почитайте - сколько перед вами откроется дополнительных возможностей. Было бы желание их использовать.


 цитата:
И как он вообще насчет стабильности и корректности?


Люди работают, а глюки - так вроде с немецкого "глюк" это счастье
На мой скромный взгляд плюсов намного больше чем минусов, но ко всему нужно привыкнуть.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 13
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 04.05.09 16:43. Заголовок: смотри что после п.3..


смотри что после п.3...
Хорошо, что исходники Харбора есть, буду теперь там рыться. Спасибо за указание на LIBNF.LIB, а то название это ничего конкретного не говорит. А сам то как узнал? Тоже по сырцам изучал? Это к вопросу о документации... А как насчет надежности и стабильности? А то перевести на Харбор учет начислений и оплат 400 000 абонентов миллионного города и получить проблемы - весьма не хотелось бы


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1197
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.05.09 17:02. Заголовок: Urri Документация т..


Urri
Документация тут , не знаю жив ли еще линк. Если что переналью.
http://clipper.borda.ru/?1-4-0-00000126-000-0-0-1202908477

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 14
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 04.05.09 17:18. Заголовок: Петру... Я бы позаб..


Петру...

Я бы позабыл, но пока нужно запустить рабочие проекты, а потом уже открывать новые горизонты. Я и так максимально старался обходиться только стандартными функциями клиппера, даже библиотеку CT не использовал. А те несколько левых функций, которые я использовал, обязательно были с исходниками Да и функции FT_PEEK FT_POKE оказались не такими уж и экзотическими. Вот Dima дал наводку на библиотеку LIBNF.LIB, в которой они имеются. Только вот они работают не так, как в Клиппере (уже проверил).

Ну дайте кто-нибудь эту документацию или ссылку...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1199
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.05.09 17:23. Заголовок: Urri Смотри личное ..


Urri
Смотри личное сообщение

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 650
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 04.05.09 17:43. Заголовок: Urri пишет: Я бы по..


Urri пишет:

 цитата:
Я бы позабыл, но пока нужно запустить рабочие проекты


Это не аргумент, Clipper программы работают - вот и хорошо. Запускайте, но.. Вот к примеру я использую функцию а() для того чтобы получить результат в виде b, не буду я настолько самоуверенным чтобы утверждать, что такой же результат можно получить только в результате работы моей функции а(), а не какой-то 3-d c(). Вот вы используете FT_PEEK FT_POKE, но вы их используете для того чтобы получить какой-то результат, а не просто что-бы было. Так вот вам нужно спросить, а как мне получить такую-то информацию, сделать то-то, может кто-то и и подскажет. FT_PEEK FT_POKE FT_INT86 очень системнозависимые функции и возможно вам в сторону WinAPI смотреть нужно. Такой подход приведет вас к нужному результату гораздо быстрее.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 15
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 04.05.09 17:53. Заголовок: Dima... Не дает доку..


Dima... Не дает доку... Может на почту мне кинешь urrisoft@dneprogaz.dp.ua

Буду благодарен всем, кто по этому адресу пришлет документацию на Харбор.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1201
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 04.05.09 17:55. Заголовок: Urri пишет: Не дает..


Urri пишет:

 цитата:
Не дает доку


Странно. Выслал на мыло.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 845
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.05.09 19:13. Заголовок: Urri пишет: А как н..


Urri пишет:

 цитата:
А как насчет надежности и стабильности? А то перевести на Харбор учет начислений и оплат 400 000 абонентов миллионного города и получить проблемы - весьма не хотелось бы



Насчет надежности и стабильности мы тебе все уши уже прожжужалииии....
http://clipper.borda.ru/?1-0-0-00000442-000-15-0

Намного стабильней и надежней чем Клипер, уже 4 год на нем сижу - облегчилась поддержка программ своих и юзвера теперь вообще не достают, из-за дурацкого сообщения : "Приложение выполнила некорректную операцию и будет закрыта...."

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 16
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 05.05.09 11:12. Заголовок: Добрый день, уважаем..


Добрый день, уважаемые.
Спасибо тем, кто порадовал меня вчера документацией.

Петру... Я спрашивал конкретно: как определить нажаты ли кнопки CTRL, ALT, SHIFT. Это мне сейчас нужно. Вспомнил свой способ определения состояния кнопок через FT_PEEK, Dima присоветовал воспользоваться функциями из LIBNF.LIB (там есть и FT_PEEK, FT_POKE, ALT(), CTRL(), Shift()) - ни одна функция не дала нужного результата. И что теперь делать присоветуете? Ради этого лезть в WinApi? Конечно я туда полезу, когда будет работать то что есть и без сбоев - ошибок. В этом сейчас приоритет. А то у нас такая организация, что нет места программистским ошибкам - сразу можно пострадать на улицу (начальство сейчас нервное и государство больное на голову)

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1202
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.05.09 11:42. Заголовок: Urri Посмотри эту т..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 17
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 05.05.09 11:58. Заголовок: У меня и на С исходн..


У меня и на С исходник есть, но там нужны библиотеки для зашищенного режима и 32-х разрядные. А у меня только 16-разрядные. И с ассемблером x86 я не сдружился (три предыдущих я знал очень хорошо, а этом меня разочаровал). Тут вот Петр рекомендует обходиться без экзотики, в чем то он прав и я так старался все время делать. А в CT таких возможностей проверить состояние клавиатуры разве нет?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1106
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.05.09 12:24. Заголовок: Вы используете Harbo..


Вы используете Harbour или xHarbour ?
Была проблема с опросом состояния alt-shifr-ctrl для терминала gtwin
В Harbour ее вроде пофиксили:

2009-01-05 13:33 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gtwin/gtwin.c
! Fixed HB_GTI_KBDSHIFTS not working in console mode.
Replaced GetKeyboardState() call with GetKeyState() calls.

Наверное, в xHarbour этот фикс не попал
Функция из ct KBDStat работает ?

По поводу peek/poke. Для чего используются эти функции ? Чтение/запись каких-то данных Bios ? Каких именно ? Расскажите, посоветуем, чем можно их заменить.

Пару слов насчет надежности и Ads. Если планируется использовать Ads с Harbour, то надежность работы с БД останется на том же уровне, поскольку она обеспечивается сервером
Чтобы не было сюрпризом, скажу: Ads с Harbour не поддерживает udf в индексах. Это проблема не Харбора, любой 32-х разрядный клиент Ads не поддерживает udf, так что udf надо чем-то заменять


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 18
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 05.05.09 12:47. Заголовок: Я использую xHarbour..


Я использую xHarbour. А что, может просто Harbour использовать? В рекомендациях говорили, что xHarbour более продвинутый

FT_PEEK используется для того, чтобы по адресу (0,1047) получить байт состояния клавиатуры, в котором каждый бит отвечает за нажатие CTRL, Alt, Shift.. Пробовал я и kbdStat, но возвращает только 0 при любых комбинациях указанных клавиш. И что я не так делаю?
А про udf - спасибо за подсказку и экономию времени. У меня этого крайне мало и легко лечится

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1107
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.05.09 13:12. Заголовок: Urri пишет: Я испол..


Urri пишет:

 цитата:
Я использую xHarbour. А что, может просто Harbour использовать? В рекомендациях говорили, что xHarbour более продвинутый



Года 2 назад так и было, но сейчас как раз наоборот
Можно использовать Habour, или в xHarbour сделать исправление:
в source\rtl\gtwin\gtwin.c в обработке
case HB_GTI_KBDSHIFTS:
строку
pInfo->pResult = hb_itemPutNI( pInfo->pResult, hb_gt_w32_getKbdState() );

заменить на строку:

pInfo->pResult = hb_itemPutNI( pInfo->pResult, hb_gt_win_getKbdState() );

и добавить в эетот же модуль функцию hb_gt_win_getKbdState,
вставив ее перед hb_gt_win_Info:

static int hb_gt_win_getKbdState( void )
{
int iKbdState = 0;

if( GetKeyState( VK_SHIFT ) & 0x80 ) iKbdState |= HB_GTI_KBD_SHIFT;
if( GetKeyState( VK_CONTROL ) & 0x80 ) iKbdState |= HB_GTI_KBD_CTRL;
if( GetKeyState( VK_MENU ) & 0x80 ) iKbdState |= HB_GTI_KBD_ALT;
if( GetKeyState( VK_LWIN ) & 0x80 ) iKbdState |= HB_GTI_KBD_LWIN;
if( GetKeyState( VK_RWIN ) & 0x80 ) iKbdState |= HB_GTI_KBD_RWIN;
if( GetKeyState( VK_APPS ) & 0x80 ) iKbdState |= HB_GTI_KBD_MENU;
if( GetKeyState( VK_SCROLL ) & 0x01 ) iKbdState |= HB_GTI_KBD_SCROLOCK;
if( GetKeyState( VK_NUMLOCK ) & 0x01 ) iKbdState |= HB_GTI_KBD_NUMLOCK;
if( GetKeyState( VK_CAPITAL ) & 0x01 ) iKbdState |= HB_GTI_KBD_CAPSLOCK;
if( GetKeyState( VK_INSERT ) & 0x01 ) iKbdState |= HB_GTI_KBD_INSERT;

return iKbdState;
}

и пересобрать xHarbour, или только библиотеку gtwin

Если Peek/Poke используется только для клавиатуры, то надо их заменить на вызов KbdStat

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 19
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 05.05.09 13:24. Заголовок: А какая тогда версия..


А какая тогда версия Harbour самая надежная из последних и где ее взять? И почему теперь он круче, чем xHarbour?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1108
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.05.09 13:55. Заголовок: Urri пишет: А какая..


Urri пишет:

 цитата:
А какая тогда версия Harbour самая надежная из последних и где ее взять?



Лучше взять не релиз 1.0.1, который вышел еще в прошлом году, и в котором еще был баг с опросом клавиатуры, а, к примеру, сборку, которую выкладывае Григорий


 цитата:
И почему теперь он круче, чем xHarbour?



Субъективная причина - один из разработчиков, который был локомотивом xHarbour в последние годы - Przemyslaw Czerpak - перешел в команду Harbour, и другие девелоперы тоже переориентировались

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 20
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 05.05.09 13:58. Заголовок: И где взять эту саму..


И где взять эту самую сборку, которую выкладывает многоуважаемый Григорий? (прошу прощения за дилетантские вопросы: я же среди вас новенький)...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 294 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 148
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет