Форум » [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 - что делать и куды бечь ?

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

SergKis: Sergy еще глянь test\wvtext.prg, может понравится

Dima: Sergy пишет: Может быть, где-то есть готовый список ? Скорее всего его нет а шрифты лучше брать моноширинные.

Andrey: Я сделал функцию для пользователей - выбор шрифта. http://file.qip.ru/arch/8e-shgP3/GTWVT-ChoiceFont-xHarbour.html


Sergy: Andrey пишет: Я сделал функцию для пользователей - выбор шрифта. Спасибо за пример.

Sergy: SergKis пишет: еще глянь test\wvtext.prg, может понравится Там 4 "импортных" моноширинных шрифта. Нужны "отечественные". Может кто использует ещё что-то, кроме перечисленных.

Dr. Oldwarez: Итак, начинаю портировку DOS Clipper программы на MiniGUI+Harbour+BCC58. В HbIDE создал проект, напихал туда все многочисленные PRG исходника, поставил птички перед ADS и консольным режимом, прописал адреса библиотек и заголовков от старой проги, где было, в частности, про поддержку ADS и нате -- выдаёт ошибку. Команда BEGIN TRANSACTION...END TRANSACTION ему не нравится. Эта команда имеет отношение к ADS и содержится в файле ADS.CH в xHarbour. А в Harbour она где? Или брать заголовок от Clipper DBFCDXAX.CH, где эта команда также содержится? Upd: Попробовал также с xHarbour. Там ADS.CH присутствует, но дальше выяснилось, что досовская библиотека пользовательских функций, созданная моими предшественниками, упорно не желает линковаться с xHarbour. Скажите, пожалуйста, как прилинковать ту библиотеку XYZ.LIB (Clipper52, Blinker) под Harbour или xHarbour? Обязательно ли её перелинковывать из исходников (если они есть) под (x)Harbour?

SergKis: Dr. Oldwarez пишет начинаю портировку DOS Clipper программы на MiniGUI+Harbour+BCC58 Вы слишком торопитесь. Clipper 16 разрядный, hb 32, 64. Пересобирать придется все либы. Какой ADS брать, подскажут кто с ним работает. У вас консоль, а MiniGUI это gui интерфейс. выяснилось, что досовская библиотека пользовательских функций, созданная моими предшественниками, упорно не желает линковаться Ее надо переводить, возможно, что то пересобирать код в hb. C код, наверно, надо будет править. Когда переводил clipper систему (бухгалтерия) на hb 2.0 не так все просто было (многое было в VO), заняло почти год. Начните с простой консольной программы

alkresin: Dr. Oldwarez пишет: Команда BEGIN TRANSACTION...END TRANSACTION ему не нравится. ads.ch находится в harbour/contrib/rddads Досовская библиотека, безусловно, линковаться не будет. Надо пересобрать из исходников.

Dr. Oldwarez: SergKis пишет: Ее надо переводить, возможно, что то пересобирать код в hb. C код, наверно, надо будет править. Когда переводил clipper систему (бухгалтерия) на hb 2.0 не так все просто было (многое было в VO), заняло почти год. Начните с простой консольной программы К счастью, С-шного кода там, вроде нет. Тогда просто подскажите, как из исходников PRG собрать LIB, а не EXE. Что надо в HBMK2 указывать? Насчёт консольного режима согласен с вами. Первый этап -- консольный старый интерфейс с выскакивающим виндовым FastReport для печати красивых отчетов с картинками в формат PDF и дополнительной PRG для работы с XML безбумажного документооборота на вывод и чтение. А потом уже MiniGUI займусь, когда времени больше станет.

SergKis: Dr. Oldwarez пишет как из исходников PRG собрать LIB Собираю по старинке lib.exe или tlib.exe, т.е. hbmk2 отлаживаю сборку exe (каталог OBJ имеем), когда все ok!, запускаю if exist %LCT%\%LNM%.lib Del %LCT%\%LNM%.lib > nul for %%d in ( %O%\*.obj ) Do %VC%\BIN\lib.exe /OUT:%LCT%\%LNM%.lib +%%d > nul удалив obj с FUNCTION MAIN(), потом lib идет в общий проект. Это схема, т.к. все у меня проделывает своя программа ведения проектов, в ней hbmk2 не используется, все на bat файлах.

Dr. Oldwarez: SergKis пишет: Собираю по старинке lib.exe или tlib.exe, т.е. hbmk2 отлаживаю сборку exe Я вот взял исходники, поставил /dHARBOUR, чтобы компилятор знал, с чем имеет дело, накатал длиннючий список. Всё, вроде бы, в порядке, но нет -- постоянно вылазит F0002 Redefinition of function or procedure. При прописывании непокорной функции в другую PRG, она начинает уже проскакивать и F0002 вылазит ещё через несколько функций. Как эту ошибку подавить? Есть ли тут аналог #pragma_once?



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