Форум » [x]Harbour » Перехожу с Clipper 5.2e на Harbour, список вопросов от "новичка" » Ответить

Перехожу с Clipper 5.2e на Harbour, список вопросов от "новичка"

Sergy: Добрый день, уважаемые коллеги. Большое спасибо за море справочной информации по переходу, но нужно ещё пнуть меня в нужном направлении. Итак, установил Harbour 3.0 + BCC 5.5.1 ==>> 3.2.0 +minGW скомпилировал и запустил традиционный "Hello, world!" Дело перешло к проекту, из-за которого собственно и речь. Компилируется что через hbmk2, что самим харбором - без ошибок, всего с парой предупреждений, что меня немало удивило. Возникли ошибки на этапе линковки: [more]Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_HB_FUN_ENVPARAM' referenced from D:\HB\TRADE100.OBJ Error: Unresolved external '_HB_FUN_INKEYTRAP' referenced from D:\HB\TRADE226.OBJ Error: Unresolved external '_HB_FUN_DISKFREE' referenced from D:\HB\TRADE222.OBJ Error: Unresolved external '_HB_FUN_DISKTOTAL' referenced from D:\HB\TRADE222.OBJ Error: Unresolved external '_HB_FUN_BIOSDATE' referenced from D:\HB\TRADE.OBJ Error: Unresolved external '_HB_FUN_FT_ONTICK' referenced from D:\HB\TRADE.OBJ Error: Unresolved external '_HB_FUN_FT_ONIDLE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_FT_IAMIDLE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_TRAPANYKEY' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_KEYSEND' referenced from D:\HB\TRADE200.OBJ 1) Так понимаю, это ошибки из-за того, что не находятся некоторые функции из активно используемых CT3/Nanforum Toolkit ? Что делать с ними ? Отказываться ? Или есть заменители ? Error: Unresolved external '_HB_FUN_STACKFREE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLILOCUSE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLILOCAVL' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLILOCTOT' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLISTCUSE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLISTCAVL' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLISTCTOT' referenced from D:\HB\TRADE200.OBJ 2) Это - ошибки из-за вызовов встроенных в Blinker функций, без них легко обойтись в принципе... Error: Unresolved external '_HB_FUN_STRNUM2ARRAY' referenced from D:\HB\TRADE208.OBJ Error: Unresolved external '_HB_FUN_CMJS_EXTRACTPARAMS' referenced from D:\HB\TRADE206.OBJ Error: Unresolved external '_HB_FUN_SELECTSTOCKS' referenced from D:\HB\TRADE220.OBJ Error: Unresolved external '_HB_FUN_APPLYSERTCHAGES' referenced from D:\HB\TRADE221.OBJ Error: Unresolved external '_HB_FUN_APPLYCARGOCHAGES' referenced from D:\HB\TRADE221.OBJ Error: Unresolved external '_HB_FUN_APPLYPRICECHAGES' referenced from D:\HB\TRADE221.OBJ 3) А вот это - самое странное - это мои функции, причем некоторые из них вызываются многократно из других модулей. Например ApplyCargoChanges является STATIC в самом модуле TRADE221 - почему линковщик ее не видит, наряду с парой Apply... других ? SelectStocks активно используется в других модулях - но там линкер почему-то ошибок не видит... [/more] Help, please - что делать и куды бечь ?

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

Sergy: Dima пишет: Сливай , распаковывай и собирай http://github.com/harbour/core/archive/master.zip Видимо "мой кунг-фу недостаточно хорош..." (с) Слил отсюда: https://github.com/harbour/core готовый EXE для Windows - все запустилось. Какие отрицательные последствия от такого упрощенного шага? Девелопер Харбора из меня вряд-ли пока получится...

Dima: Sergy пишет: Правда EXE стал вместо 2,5 мегов почти 4 А ты его сожми UPX В файле проекта пропиши -compr=max

Sergy: Dima пишет: А ты его сожми UPX В файле проекта пропиши -compr=max да, тоже мысль. Кстати, или мне чудится на радостях после вчерашней бессонной ночи, или этот EXE стал ЕЩЕ ШУСТРЕЕ (компилер и комп разумеется те-же самые, что и вчера) ? Такое возможно ?


Sergy: Dima пишет: А ты его сожми UPX В файле проекта пропиши -compr=max Попробовал. Так, для общей инфы: В файле ресурса есть пяток иконок (кому какие понравятся, на выбор взамен старой). Система их не видит в сжатом EXE. Т.е. в диалоге ярлыка "сменить иконку" только один вариант - тот, что был первым в списке.

Dima: Sergy пишет: Так, для общей инфы: В файле ресурса есть пяток иконок (кому какие понравятся, на выбор взамен старой). Система их не видит в сжатом EXE. Т.е. в диалоге ярлыка "сменить иконку" только один вариант - тот, что был первым в списке. Так вот он в чем косяк оказывается. Это ответ на мой вопрос тут http://clipper.borda.ru/?1-4-0-00000881-000-0-0-1375200620

Sergy: Dima пишет: Так вот он в чем косяк оказывается. Это ответ на мой вопрос тут http://clipper.borda.ru/?1-4-0-00000881-000-0-0-1375200620 Наверняка. Можно будет попробовать другие уровни сжатия - может быть при каком-то из них (не -max) ресурсы будут доступны извне программы.

Dima: Sergy пишет: Можно будет попробовать другие уровни сжатия Уже. Результат тот же. Вот и думаю теперь а есть ли смысл паковать EXE. В чистом виде весит 7.3 метра , в упакованном 2.2 метра и запускается по сети.

Sergy: а запуск "по сети" у кого быстрее - у упакованного или у обычного ? если разницы нет - какой тогда смысл паковки ? И еще: при запуске "по сети" что показывает EXEPATH() ?

Pasha: Если так беспокоит размер exe, то почему бы не использовать сборку с harbour*.dll ? exe сразу же станут фантастически маленькими.

Dima: Pasha пишет: почему бы не использовать сборку с harbour*.dll ? Это опция hbmk2 ?

Pasha: Dima пишет: Это опция hbmk2 ? Да, опция -shared Можно использовать не только harbour*.dll, а и прочие библиотеки как dll, но это уже надо указывать ручками: заменить -lhbct на -lhbct-bcc и так далее Конечно, в целом программа меньше не станет. С учетом dll она станет больше. Но зато обновлять ее будет не в пример удобнее.

Dima: Pasha Спасибо !

Sergy: Возник вопрос: при включенной русской раскладке "точка" на цифровой клавиатуре неожиданно стала "запятой". Мне понятно, что это по дефолту установлено в винде, но юзеры бесятся. Есть ли красивый выход из этой ситуции ?

Dima: Sergy пишет: Возник вопрос: при включенной русской раскладке "точка" на цифровой клавиатуре неожиданно стала "запятой". Точно ,есть такой косяк.

Sergy: Dima пишет: Точно ,есть такой косяк. Пока в первом приближении такая мысль: поставить SETKEY() на "запятую" и анализировать текущее GET-поле. Если его тип равен N - посылать в буфер клавиатуры CHR(8) и "точку"

Dima: Sergy Это не первый косяк такого рода в этом терминале и если не ошибаюсь в прошлый раз косяк исправил Павел.

Sergy: Dima пишет: Это не первый косяк такого рода в этом терминале и если не ошибаюсь в прошлый раз косяк исправил Павел. Дабы дважды не наступать на одни и те-же грабли - подскажи плиз - что за косяк и какое решение ? Спасибо.

Dima: Dima пишет: анализировать текущее GET-поле Анализировать надо и еще Procname (в цикле) мне кажется.

Dima: Sergy пишет: что за косяк и какое решение Был косяк с какой то буквой кажется не помню какой то ли ё то ли еще какой. И он пофиксен.

Sergy: Dima пишет: И он пофиксен. где ? как именно ?



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