Автор | Сообщение |
|
| постоянный участник
|
Пост N: 1
Зарегистрирован: 21.04.09
|
|
Отправлено: 21.04.09 15:43. Заголовок: Помогите советом начинающему...
Тут вот надумал переползти на xHarbour. Возникла следующая проблема: имена всех функций и подпрограмм дополняются префиксом HB_FUN_. А можно ли этого избежать так, чтобы остались родные, начальные имена. У меня весь софт построен на скриптах, в которых уже стоят вызовы функций и процедур по привычным, родным именам. И перелопатить везде в 5000 текстовых файлах-скриптах вызовы функций и поменять на новые - задача крайне утомительная с непонятной перспективой на успех.
|
|
|
Ответов - 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-х разрядным приложением. И как он вообще насчет стабильности и корректности?
|
|
|
|
| |
Пост N: 1196
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.05.09 15:56. Заголовок: Urri 1. Смотри библ..
Urri 1. Смотри библиотеку LIBNF.LIB 2. Смотри пункт 1 3. Смотри библиотеку СT.LIBUrri пишет: цитата: | Имеются ли какие-нибудь описания функций Харбора и их параметров |
| Где то лежала в этой ветке документация.
|
|
|
|
| постоянный участник
|
Пост 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, найдите документацию и почитайте - сколько перед вами откроется дополнительных возможностей. Было бы желание их использовать. цитата: | И как он вообще насчет стабильности и корректности? |
| Люди работают, а глюки - так вроде с немецкого "глюк" это счастье На мой скромный взгляд плюсов намного больше чем минусов, но ко всему нужно привыкнуть.
|
|
|
|
| постоянный участник
|
Пост N: 13
Зарегистрирован: 21.04.09
|
|
Отправлено: 04.05.09 16:43. Заголовок: смотри что после п.3..
смотри что после п.3... Хорошо, что исходники Харбора есть, буду теперь там рыться. Спасибо за указание на LIBNF.LIB, а то название это ничего конкретного не говорит. А сам то как узнал? Тоже по сырцам изучал? Это к вопросу о документации... А как насчет надежности и стабильности? А то перевести на Харбор учет начислений и оплат 400 000 абонентов миллионного города и получить проблемы - весьма не хотелось бы
|
|
|
|
| |
Пост N: 1197
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.05.09 17:02. Заголовок: Urri Документация т..
|
|
|
|
| постоянный участник
|
Пост N: 14
Зарегистрирован: 21.04.09
|
|
Отправлено: 04.05.09 17:18. Заголовок: Петру... Я бы позаб..
Петру... Я бы позабыл, но пока нужно запустить рабочие проекты, а потом уже открывать новые горизонты. Я и так максимально старался обходиться только стандартными функциями клиппера, даже библиотеку CT не использовал. А те несколько левых функций, которые я использовал, обязательно были с исходниками Да и функции FT_PEEK FT_POKE оказались не такими уж и экзотическими. Вот Dima дал наводку на библиотеку LIBNF.LIB, в которой они имеются. Только вот они работают не так, как в Клиппере (уже проверил). Ну дайте кто-нибудь эту документацию или ссылку...
|
|
|
|
| |
Пост N: 1199
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.05.09 17:23. Заголовок: Urri Смотри личное ..
Urri Смотри личное сообщение
|
|
|
|
| постоянный участник
|
Пост 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 смотреть нужно. Такой подход приведет вас к нужному результату гораздо быстрее.
|
|
|
|
| постоянный участник
|
Пост N: 15
Зарегистрирован: 21.04.09
|
|
Отправлено: 04.05.09 17:53. Заголовок: Dima... Не дает доку..
Dima... Не дает доку... Может на почту мне кинешь urrisoft@dneprogaz.dp.ua Буду благодарен всем, кто по этому адресу пришлет документацию на Харбор.
|
|
|
|
| |
Пост N: 1201
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.05.09 17:55. Заголовок: Urri пишет: Не дает..
Urri пишет: Странно. Выслал на мыло.
|
|
|
|
| постоянный участник
|
Пост 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 год на нем сижу - облегчилась поддержка программ своих и юзвера теперь вообще не достают, из-за дурацкого сообщения : "Приложение выполнила некорректную операцию и будет закрыта...."
|
|
|
|
|
| постоянный участник
|
Пост 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? Конечно я туда полезу, когда будет работать то что есть и без сбоев - ошибок. В этом сейчас приоритет. А то у нас такая организация, что нет места программистским ошибкам - сразу можно пострадать на улицу (начальство сейчас нервное и государство больное на голову)
|
|
|
|
| |
Пост N: 1202
Зарегистрирован: 17.05.05
|
|
Отправлено: 05.05.09 11:42. Заголовок: Urri Посмотри эту т..
|
|
|
|
| постоянный участник
|
Пост N: 17
Зарегистрирован: 21.04.09
|
|
Отправлено: 05.05.09 11:58. Заголовок: У меня и на С исходн..
У меня и на С исходник есть, но там нужны библиотеки для зашищенного режима и 32-х разрядные. А у меня только 16-разрядные. И с ассемблером x86 я не сдружился (три предыдущих я знал очень хорошо, а этом меня разочаровал). Тут вот Петр рекомендует обходиться без экзотики, в чем то он прав и я так старался все время делать. А в CT таких возможностей проверить состояние клавиатуры разве нет?
|
|
|
|
| Администратор
|
Пост 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 надо чем-то заменять
|
|
|
|
| постоянный участник
|
Пост N: 18
Зарегистрирован: 21.04.09
|
|
Отправлено: 05.05.09 12:47. Заголовок: Я использую xHarbour..
Я использую xHarbour. А что, может просто Harbour использовать? В рекомендациях говорили, что xHarbour более продвинутый FT_PEEK используется для того, чтобы по адресу (0,1047) получить байт состояния клавиатуры, в котором каждый бит отвечает за нажатие CTRL, Alt, Shift.. Пробовал я и kbdStat, но возвращает только 0 при любых комбинациях указанных клавиш. И что я не так делаю? А про udf - спасибо за подсказку и экономию времени. У меня этого крайне мало и легко лечится
|
|
|
|
| Администратор
|
Пост 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
|
|
|
|
| постоянный участник
|
Пост N: 19
Зарегистрирован: 21.04.09
|
|
Отправлено: 05.05.09 13:24. Заголовок: А какая тогда версия..
А какая тогда версия Harbour самая надежная из последних и где ее взять? И почему теперь он круче, чем xHarbour?
|
|
|
|
| Администратор
|
Пост N: 1108
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.05.09 13:55. Заголовок: Urri пишет: А какая..
Urri пишет: цитата: | А какая тогда версия Harbour самая надежная из последних и где ее взять? |
| Лучше взять не релиз 1.0.1, который вышел еще в прошлом году, и в котором еще был баг с опросом клавиатуры, а, к примеру, сборку, которую выкладывае Григорий цитата: | И почему теперь он круче, чем xHarbour? |
| Субъективная причина - один из разработчиков, который был локомотивом xHarbour в последние годы - Przemyslaw Czerpak - перешел в команду Harbour, и другие девелоперы тоже переориентировались
|
|
|
|
| постоянный участник
|
Пост N: 20
Зарегистрирован: 21.04.09
|
|
Отправлено: 05.05.09 13:58. Заголовок: И где взять эту саму..
И где взять эту самую сборку, которую выкладывает многоуважаемый Григорий? (прошу прощения за дилетантские вопросы: я же среди вас новенький)...
|
|
|
Ответов - 294
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|