Автор | Сообщение |
|
| |
Пост N: 86
Зарегистрирован: 08.07.06
|
|
Отправлено: 11.08.13 18:47. Заголовок: Перехожу с Clipper 5.2e на Harbour, список вопросов от "новичка"
Добрый день, уважаемые коллеги. Большое спасибо за море справочной информации по переходу, но нужно ещё пнуть меня в нужном направлении. Итак, установил Harbour 3.0 + BCC 5.5.1 ==>> 3.2.0 +minGW скомпилировал и запустил традиционный "Hello, world!" Дело перешло к проекту, из-за которого собственно и речь. Компилируется что через hbmk2, что самим харбором - без ошибок, всего с парой предупреждений, что меня немало удивило. Возникли ошибки на этапе линковки: Скрытый текст 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 активно используется в других модулях - но там линкер почему-то ошибок не видит...
| Help, please - что делать и куды бечь ?
|
|
|
Ответов - 285
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
|
| |
Пост N: 96
Зарегистрирован: 08.07.06
|
|
Отправлено: 11.08.13 22:58. Заголовок: Andrey пишет: Это C..
Andrey пишет: цитата: | Это CT.LIB Я отказался от неё. |
| Понятно, что у виндовой программы и расширенного Harbour всяко функций больше. Но сейчас нужно запустить проект и посмотреть, где что да как. Dima пишет: цитата: | Тяжелый случай. Тяжело и громоздко. Не надо его юзать. CDX самое то или IDX (CDX) под ADS или LetoDB (CDX) |
| Переделывать NTX на CDX или еще дальше - SQL подобные БД вообще думаю пока нет смысла, когда программа "еле дышит"... Запустить, попробовать, добиться хотя-бы такого-же функционала, как и с 5,2е, обкатать, а потом уж оптимзировать. Такие вот мысли пока...
|
|
|
|
| |
Пост N: 3361
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.08.13 23:01. Заголовок: Sergy пишет: Запуст..
Sergy пишет: цитата: | Запустить, попробовать, добиться хотя-бы такого-же функционала, как и с 5,2е, обкатать, а потом уж оптимзировать. |
| Все правильно. Так и я думал и все получилось и у тебя все будет нормально с переводом. Просто остынь и осмысли А вопросы сюда ;) Поможем ! ЗЫ Я тоже не верил что смогу перевести довольно большую прогу с Clipper 5.2 на Harbor , но.......5 дней упорной работы и добился такого же функционала 5 метров исходников , 300 файлов , пришлось попотеть конечно. Руки не опускай и все будет норм ! По ходу косяков будет много по началу но со временем все меньше и меньше. Просто поверь.
|
|
|
|
| |
Пост N: 97
Зарегистрирован: 08.07.06
|
|
Отправлено: 11.08.13 23:01. Заголовок: Dima пишет: Выведи ..
Dima пишет: цитата: | Выведи это дело в ? cDir+cAlias+cExt и глянь что кажет , возможно твой косяк |
| Мой. удалил клипперовские *.NTX, а - *.XNT - остались... Удалил, перестроились ок. Сорри.
|
|
|
|
| |
Пост N: 98
Зарегистрирован: 08.07.06
|
|
Отправлено: 11.08.13 23:20. Заголовок: Dima пишет: Все пра..
Dima пишет: цитата: | Все правильно. Так и я думал и все получилось и у тебя все будет нормально с переводом. Просто остынь и осмысли А вопросы сюда ;) Поможем ! |
| А вот за это - отдельное БОЛЬШОЕ Спасибо! цитата: | ЗЫ Я тоже не верил что смогу перевести довольно большую прогу с Clipper 5.2 на Harbor , но.......5 дней упорной работы и добился такого же функционала 5 метров исходников , 300 файлов , пришлось попотеть конечно. Руки не опускай и все будет норм ! По ходу косяков будет много по началу но со временем все меньше и меньше. Просто поверь. |
| У меня чуть скромнее: 34 файла, 2,5 мега исходников. Всегда старался не пользоваться никакими сторонними библиотеками, кроме стандартных Nanforun Toolkit и Clipper Tools - подозревал, что этот день когда-нить настанет... В первом приближении - Работает!!! И ТАК БЫСТРО, что ппц.
|
|
|
|
| |
Пост N: 100
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 12:19. Заголовок: Итак, огромное спаси..
Итак, огромное спасибо всем помощникам! Программа запустилась и очень шустро (по сравнению с ntvdm) работает. Возникающие то тут, то там вопросы - решаемы, связаны с вольностями Clipper - все, что дальше десятого символа считается неважным. На повестке дня пока два насущных вопроса, связанных с отказом от нескольких системных функций: 1) В программе есть возможность записи клавиатурных нажатий. Типа макросов. И последующего их воспроизведения одним нажатием для автоматизации рутинных операций. Раньше это было организовано при помощи INKEYTRAP/TRAPANYKEY/KEYSEND. Одна из этих функций актвивизировалась и складывала в фоновом режиме все нажатия юзера в массив/строку. После чего в любой момент из массива/строки при помощи KEYSEND эти коды кнопок передавались в буфер клавиатуры. Просто и удобно. Как можно релизовать похожий механизм в Harbour ? 2) Нужен аналог функции BIOSDATE(), она используется сами понимаете для чего. Отказываться полностью не хочется, а использовать что-либо взамен - придется бегать по всем машинам с флэшкой, переделывать ключевые файлы.
|
|
|
|
| |
Пост N: 3362
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.13 12:32. Заголовок: Sergy пишет: Нужен ..
Sergy пишет: цитата: | Нужен аналог функции BIOSDATE() |
| Func Biosdate() #include "hbwin.ch" return GetRegistry( WIN_HKEY_LOCAL_MACHINE,"HARDWARE\DESCRIPTION\System" ,"SystemBiosDate" )
|
|
|
|
| |
Пост N: 101
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 12:38. Заголовок: Dima пишет: Func B..
Dima пишет: цитата: | Func Biosdate() #include "hbwin.ch" return GetRegistry( WIN_HKEY_LOCAL_MACHINE,"HARDWARE\DESCRIPTION\System" ,"SystemBiosDate" ) |
| Спасибо, использую
|
|
|
|
| |
Пост N: 3363
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.13 12:44. Заголовок: Sergy Можно еще к M..
Sergy Можно еще к MAC адресу сетевой прицепиться.
|
|
|
|
| |
Пост N: 102
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 13:04. Заголовок: Dima пишет: Можно е..
Dima пишет: цитата: | Можно еще к MAC адресу сетевой прицепиться. |
| Безусловно, только сейчас первая задача - сохранить и перенести функционал. И только потом развиваться дальше. Вот с клавиатурными нажатиями - с какой стороны подступить ?
|
|
|
|
| |
Пост N: 3364
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.13 13:27. Заголовок: Sergy пишет: Вот с ..
Sergy пишет: цитата: | Вот с клавиатурными нажатиями - с какой стороны подступить ? |
| Можно попробовать FT_OnTick({|| test()},1) в функции Test и пробуй записывать Или ваять самому https://groups.google.com/forum/#!topic/comp.lang.xharbour/e77vVVb1Kuc
|
|
|
|
| |
Пост N: 106
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 15:18. Заголовок: Dima пишет: Можно п..
Dima пишет: цитата: | Можно попробовать FT_OnTick({|| test()},1) в функции Test и пробуй записывать Или ваять самому https://groups.google.com/forum/#!topic/comp.lang.xharbour/e77vVVb1Kuc |
| Буду пробовать...
|
|
|
|
|
| |
Пост N: 109
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 17:52. Заголовок: Dima пишет: Func B..
Dima пишет: цитата: | Func Biosdate() #include "hbwin.ch" return GetRegistry( WIN_HKEY_LOCAL_MACHINE,"HARDWARE\DESCRIPTION\System" ,"SystemBiosDate" ) |
| Error: Unresolved external '_HB_FUN_GETREGISTRY' referenced from... хотя в проект hbwin.hbc подключил...
|
|
|
|
| |
Пост N: 3369
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.13 18:13. Заголовок: Sergy пишет: Error:..
Sergy пишет: цитата: | Error: Unresolved external '_HB_FUN_GETREGISTRY' referenced from. |
| попробуй win_regGet() У меня Harbour 3.2 у тебя 3.0 вот и отличия ЗЫ Можно еще сырец глянуть win_reg.prg из Hbwin
|
|
|
|
| |
Пост N: 110
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 21:54. Заголовок: Dima пишет: попробу..
Dima пишет: цитата: | попробуй win_regGet() У меня Harbour 3.2 у тебя 3.0 вот и отличия |
| Получилось.
|
|
|
|
| |
Пост N: 111
Зарегистрирован: 08.07.06
|
|
Отправлено: 12.08.13 23:58. Заголовок: Заметил, что ACHOICE..
Заметил, что ACHOICE себя как-то странно ведет. Суть: REPEAT pos := ACHOICE(2,10,2,40,show_array,,,pos) UNTIL (LastKey() == K_ENTER) Да, весь массив в Clipper прокручивается в одной строке - так выбираю логин входящего юзера, чтобы не вводить с клавиатуры. Компактно и поиск по первой букве работает. Плюс стрелками можно выбрать: Savin -> Serebrov -> Silaev... В Harbour при нажатии "стрелка вверх" неожиданно У всех так ? Второй файл, ac_test2 тоже работает через Ж...
|
|
|
|
| постоянный участник
|
Пост N: 2924
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.08.13 00:15. Заголовок: Sergy пишет: Замети..
Sergy пишет: цитата: | Заметил, что ACHOICE себя как-то странно ведет. |
| Да, он от клипера отличается. Смотри доку и переделывай обработку функций ACHOICE, MEMOEDIT, TBROWSE. Мне тоже пришлось это переделывать. Разницу сейчас не скажу, но делал маленькие тестовые примеры, а потом код перетаскивал в свои системы.
|
|
|
|
| |
Пост N: 112
Зарегистрирован: 08.07.06
|
|
Отправлено: 13.08.13 15:26. Заголовок: Andrey пишет: Смотр..
Andrey пишет: Какую именно доку ?
|
|
|
|
| постоянный участник
|
Пост N: 2925
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.08.13 18:12. Заголовок: Sergy пишет: Какую ..
|
|
|
|
| |
Пост N: 113
Зарегистрирован: 08.07.06
|
|
Отправлено: 13.08.13 22:30. Заголовок: Andrey пишет: http:..
|
|
|
|
| постоянный участник
|
Пост N: 900
Зарегистрирован: 27.01.07
|
|
Отправлено: 14.08.13 08:31. Заголовок: Да, с AChoice косяк ..
Да, с AChoice косяк есть... Хех... В тех исходниках, что у меня (а они довольно старые, от 30.01.2013), в achoice.prg увидел следующее: /* TOFIX: --- #include "inkey.ch" CLS hb_keyPut( { K_DOWN, K_UP } ) // bogus '2' appears out of the area here. AChoice( 0, 0, 0, 0, { "1", "2" } ) --- */ Так что баг уже давно замечен. Осталось, чтобы кто-то его вылечил... ))) У кого есть свежие исходники? Там не исправлено еще? update: Сечас посмотрел на git. Не исправлено... ((( Ну что ж, либо забить, либо искать косяк в achoice.prg и исправлять.
|
|
|
Ответов - 285
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|