Форум » [x]Harbour » Помогите советом начинающему... » Ответить

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

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

Ответов - 294, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

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

Dima: Urri 1. Смотри библиотеку LIBNF.LIB 2. Смотри пункт 1 3. Смотри библиотеку СT.LIBUrri пишет: Имеются ли какие-нибудь описания функций Харбора и их параметров Где то лежала в этой ветке документация.

Петр: Помогите советом начинающему... Urri пишет: 1. Имеется ли функция чтения-записи определенных ячеек памяти (аналог FT_PEEK, FT_POKE). 2. Имеется ли функция вызова прерывания и передачи-получения параметров (аналог FT_INT86) Дружеский совет - забудьте это. Вот сегодня с Clipper на xHarbour, а завтра с Windows на Solaris и что опять изворачиваться? Максимально используйте встроенные функции языка (читай переносимые), поменьше нестрандартных решений и будет вам счастье. Urri пишет: но как-то еще не осознал полного кайфа кроме того, что это стало чисто 32-х разрядным приложением. Потому что программируете вы еще на Clipper, найдите документацию и почитайте - сколько перед вами откроется дополнительных возможностей. Было бы желание их использовать. И как он вообще насчет стабильности и корректности? Люди работают, а глюки - так вроде с немецкого "глюк" это счастье На мой скромный взгляд плюсов намного больше чем минусов, но ко всему нужно привыкнуть.


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

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

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

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

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

Urri: Dima... Не дает доку... Может на почту мне кинешь urrisoft@dneprogaz.dp.ua Буду благодарен всем, кто по этому адресу пришлет документацию на Харбор.

Dima: Urri пишет: Не дает доку Странно. Выслал на мыло.

Andrey: Urri пишет: А как насчет надежности и стабильности? А то перевести на Харбор учет начислений и оплат 400 000 абонентов миллионного города и получить проблемы - весьма не хотелось бы Насчет надежности и стабильности мы тебе все уши уже прожжужалииии.... http://clipper.borda.ru/?1-0-0-00000442-000-15-0 Намного стабильней и надежней чем Клипер, уже 4 год на нем сижу - облегчилась поддержка программ своих и юзвера теперь вообще не достают, из-за дурацкого сообщения : "Приложение выполнила некорректную операцию и будет закрыта...."

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

Dima: Urri Посмотри эту тему http://clipper.borda.ru/?1-4-0-00000339-000-0-0-1223272101

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

Pasha: Вы используете 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 надо чем-то заменять

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

Pasha: 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

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

Pasha: Urri пишет: А какая тогда версия Harbour самая надежная из последних и где ее взять? Лучше взять не релиз 1.0.1, который вышел еще в прошлом году, и в котором еще был баг с опросом клавиатуры, а, к примеру, сборку, которую выкладывае Григорий И почему теперь он круче, чем xHarbour? Субъективная причина - один из разработчиков, который был локомотивом xHarbour в последние годы - Przemyslaw Czerpak - перешел в команду Harbour, и другие девелоперы тоже переориентировались

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



полная версия страницы