Автор | Сообщение |
|
| |
Пост 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: 147
Зарегистрирован: 08.07.06
|
|
Отправлено: 19.08.13 23:09. Заголовок: petr707 пишет: Уда..
petr707 пишет: цитата: | Удалите все файлы, и перезапустите ,старый Ваш файл тест.! картинку портит Должно быть два файла в?бв.! ( содержимое="1") и тест.! (содержимое="2") |
| Все удалил получил две шутки TRUE и ОДИН файл в?бв.! с содержимым 2
|
|
|
|
| |
Пост N: 148
Зарегистрирован: 08.07.06
|
|
Отправлено: 19.08.13 23:10. Заголовок: petr707 пишет: Не р..
petr707 пишет: цитата: | Не работает SetFileApis() |
| Он работает, но как-то "не до конца". Без него RUN("@echo -- Привет --") дает кракозябры. С ним - всё нормально.
|
|
|
|
| |
Пост N: 15
Зарегистрирован: 21.04.13
|
|
Отправлено: 19.08.13 23:15. Заголовок: Harbour - сборка Unicode ?
Запуск test.exe //info -что показывает ?
|
|
|
|
| |
Пост N: 149
Зарегистрирован: 08.07.06
|
|
Отправлено: 19.08.13 23:17. Заголовок: petr707 пишет: Запу..
petr707 пишет: цитата: | Запуск test.exe //info -что показывает ? |
| Harbour Terminal: Windows native console Harbour 3.0.0 (Rev. 16951) Windows XP 5.1.2600 Service Pack 3 DS avail=1692828KB OS avail=2079244KB EMM avail=0KB MemStat:Off MT:Off .T. .T. .T.
|
|
|
|
| |
Пост N: 16
Зарегистрирован: 21.04.13
|
|
Отправлено: 19.08.13 23:18. Заголовок: RUN("@echo -- Привет --") дает кракозябры
RUN("@echo -- Привет --") дает кракозябры еще раз проверяем кодовую страницу PRG -файла
|
|
|
|
| |
Пост N: 150
Зарегистрирован: 08.07.06
|
|
Отправлено: 19.08.13 23:22. Заголовок: petr707 пишет: еще ..
petr707 пишет: цитата: | еще раз проверяем кодовую страницу PRG -файла |
| Вот ascii-коды символов, входящих в слово "Привет", которые выводит встроенный редактор FAR: 143 224 168 162 165 226
|
|
|
|
| |
Пост N: 17
Зарегистрирован: 21.04.13
|
|
Отправлено: 19.08.13 23:40. Заголовок: Чтобы не зависеть от кодовой страницы Prg-файла
Чтобы не зависеть от кодовой страницы Prg-файла замените cfname:="тест.!" на cfname:=CHR(226)+CHR(165)+...//"тест.!"
|
|
|
|
| |
Пост N: 151
Зарегистрирован: 08.07.06
|
|
Отправлено: 19.08.13 23:44. Заголовок: petr707 пишет: Чтоб..
petr707 пишет: цитата: | Чтобы не зависеть от кодовой страницы Prg-файла замените cfname:="тест.!" на cfname:=CHR(226)+CHR(165)+...//"тест.!" |
| сделал. результат не изменился. три штуки TRUE один файл с именем в кракозябрах с содержимым "2"
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 21.04.13
|
|
Отправлено: 19.08.13 23:50. Заголовок: Начинаем "шаманить"
Начинаем "шаманить" После строки HB_CDPSELECT("RU866") Добавляем одну строку HB_GtInfo(HB_GTI_CODEPAGE, 255) // oem_charset //HB_GtInfo(HB_GTI_CODEPAGE, 0 ) // ansi_charset // HB_SETTERMCP("RU256")//, "RU1251", .t. )
|
|
|
|
| |
Пост N: 152
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 00:01. Заголовок: petr707 пишет: Начи..
petr707 пишет: цитата: | Начинаем "шаманить" После строки HB_CDPSELECT("RU866") Добавляем одну строку HB_GtInfo(HB_GTI_CODEPAGE, 255) // oem_charset |
| ┌────────────────────────────────────────────┐ │ Error BASE/1003 Переменная не существует: │ │ HB_GTI_CODEPAGE │ │ │ │ Quit Retry │ └────────────────────────────────────────────┘ Подключил hbgtinfo.ch результат - один в один - три TRUE, один файл с названием из кракозябр и содерджимым 2 Поставил HB_GtInfo(HB_GTI_CODEPAGE, 0) - тоже самое
|
|
|
|
| |
Пост N: 19
Зарегистрирован: 21.04.13
|
|
Отправлено: 20.08.13 00:10. Заголовок: \hb30\tests\gtchars.prg
Похоже дело не в русских именах файлов а вообще с кодовой страницей Предлагаю скомпилировать и выполнить тесты из \hb30\tests\ можно начать с gtchars.prg
|
|
|
|
|
| |
Пост N: 153
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 00:18. Заголовок: petr707 пишет: можн..
petr707 пишет: цитата: | можно начать с gtchars.prg |
| скомпилировал, боксики-квадратики видны ok
|
|
|
|
| |
Пост N: 154
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 00:27. Заголовок: вместо польских пост..
вместо польских поставил RU866, вроде все работает: Или я чего не понимаю ?
|
|
|
|
| |
Пост N: 156
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 01:15. Заголовок: Вот что нашел тут: h..
Вот что нашел тут: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365534(v=vs.85).aspx 8-bit console apps using the OEM codepage Note: If you are writing/porting an 8-bit console application, in addition to calling SetFileApisToOem() you should also call setlocale(LC_ALL, ".OCP") followed by _setmbcp(_MB_CP_LOCALE). Может этих двух вызовов и не хватает?
|
|
|
|
| |
Пост N: 157
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 09:48. Заголовок: Помогите плиз... :s..
Помогите плиз...
|
|
|
|
| |
Пост N: 3405
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.08.13 11:04. Заголовок: XP SP2 Текст в DOS к..
XP SP2 Текст в DOS кодировке (набирался в FAR) Harbour 3.2.0dev (Rev. 18899) FUNC Main() REQUEST HB_LANG_RU866 REQUEST HB_CODEPAGE_RU866 HB_LANGSELECT("RU866") HB_CDPSELECT("RU866") fclose(fcreate("текст.!")) ? File("текст.!") // .T. RUN("@echo -- Привет --") // и тут все норм на экране QUIT RETURN
|
|
|
|
| |
Пост N: 158
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 11:18. Заголовок: Dima пишет: Harbour..
Dima пишет: я бился и так и эдак - походу дело в версии Harbour. Нужно пробовать 3.2 вместо 3.0. Подскажите плиз - с чего начать. Там так понимаю, все идет в исходниках, нужно саму систему сначала скомпилить...
|
|
|
|
| |
Пост N: 3406
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.08.13 11:29. Заголовок: Sergy Сливай , расп..
|
|
|
|
| Администратор
|
Пост N: 2945
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.08.13 13:05. Заголовок: Sergy пишет: Помоги..
Sergy пишет: Действительно, необходимо использовать Harbour 3.2 Это уникодная сборка, а 3.0 - еще не уникодная. 3.2 преобразует имена файлов в UNICODE, и проблем с именами не возникнет, если указана cp866 Вызов SetFileApis в этом случае не нужен.
|
|
|
|
| |
Пост N: 159
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.08.13 16:35. Заголовок: Pasha пишет: Действ..
Pasha пишет: цитата: | Действительно, необходимо использовать Harbour 3.2 Это уникодная сборка, а 3.0 - еще не уникодная. 3.2 преобразует имена файлов в UNICODE, и проблем с именами не возникнет, если указана cp866 Вызов SetFileApis в этом случае не нужен. |
| Все заработало как нужно. Правда EXE стал вместо 2,5 мегов почти 4 - но кого это сегодня заботит... Уважаемые старожилы - предупреждайте новичков о таких вилах, спрятанных в стоге сена по названием Harbour 3.0. Спасибо за поддержку и помощь.
|
|
|
Ответов - 285
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|