Автор | Сообщение |
|
| постоянный участник
|
Пост N: 6492
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.10.19 20:00. Заголовок: Переход с BCC 5.5 на BCC 5.8 и BCC 7.30
Что то непонятки пошли в новом компиляторе. Собираю часть проекта и линкую основную библиотеку. Выдаёт теперь ошибку сборки, а как исправить не знаю: Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland Error: Unresolved external 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::__nullref' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay Error: Unresolved external 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::__getRep(unsigned int, unsigned int)' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay Error: Unresolved external '__rwstd::__rw_stdexcept_BadAllocException' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay Error: Unresolved external '__rwstd::__rw_stdexcept_NoNamedException' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay Error: Unresolved external '__rwstd::rwse_OutOfRange' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay Error: Unresolved external '__rwstd::except_msg_string::except_msg_string(const char *, ...)' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay Error: Unresolved external 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char, std::char_traits<char>, std::allocator<char> >(const char *, const std::allocator<char>&)' referenced from D:\TEMP\TEST\TBRW_TABLE2.LIB|overlay hbmk2[form_Zaivka]: Error: Running linker. 2 Файл overlay.cpp в библиотеке Tbrw_Table2.lib прекрасно работал под BCC 5.51 А в 5.8 что-то конфликтует... Как быть ?
|
|
|
Ответов - 91
, стр:
1
2
3
4
5
All
[только новые]
|
|
|
| |
Пост N: 7767
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.23 16:34. Заголовок: Andrey MINGW не про..
Andrey MINGW не пробовал ?
|
|
|
|
| постоянный участник
|
Пост N: 7415
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.06.23 18:12. Заголовок: Dima пишет: MINGW н..
|
|
|
|
| |
Пост N: 7768
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.23 18:33. Заголовок: Да , я забыл что у т..
Да , я забыл что у тебя Hasp...
|
|
|
|
| постоянный участник
|
Пост N: 7416
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.06.23 18:43. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | используй вместо функции hb_compiler() новую функцию hb_Ccompiler() |
| А как предусмотреть использование этих разных функций для разных компиляторов BCC ? IF version_BCC < ???? cVerBcc := hb_compiler() ELSE cVerBcc := hb_Ccompiler() ENDIF
|
|
|
|
| moderator
|
Пост N: 2156
Зарегистрирован: 11.02.10
|
|
Отправлено: 13.06.23 18:52. Заголовок: Andrey пишет: как п..
Andrey пишет: цитата: | как предусмотреть использование этих разных функций для разных компиляторов BCC ? |
| Это - псевдо-функция, и она уже учитывает эту разницу
|
|
|
|
| |
Пост N: 7769
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.23 18:54. Заголовок: New: Added the usefu..
New: Added the useful pseudo-function hb_Ccompiler() for more accurate detection of the Borland/Embarcadero C++ compiler version. Перевод Добавлена полезная псевдофункция hb_Ccompiler() для более точного определение версии компилятора Borland/Embarcadero C++.
|
|
|
|
| |
Пост N: 7770
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.23 18:54. Заголовок: gfilatov2002 Оперед..
gfilatov2002 Опередил ))
|
|
|
|
| постоянный участник
|
Пост N: 7417
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.06.23 10:41. Заголовок: Непонятки при сборке..
Непонятки при сборке вместе с готовой своей my.lib Собрал my.lib новым компилятором, добавил в проект где использую. Не собирается зараза, выдаёт вот такое... ..... OBJ\use_LetoDb.c: OBJ\use_Postgres.c: OBJ\InetState.c: In file included from InetState.prg:162: C:\BCC102\Include\windows\sdk\windows.h:42:9: warning: unknown pragma ignored [-Wunknown-pragmas] #pragma region Application Family or OneCore Family ^ In file included from InetState.prg:162: In file included from C:\BCC102\Include\windows\sdk\windows.h:199: In file included from C:\BCC102\Include\windows\sdk\windef.h:25: In file included from C:\BCC102\Include\windows\sdk\minwindef.h:15: In file included from C:\BCC102\Include\windows\sdk\specstrings.h:62: C:\BCC102\Include\windows\sdk\sal.h:718:9: warning: unknown pragma ignored [-Wunknown-pragmas] #pragma region Input Buffer SAL 1 compatibility macros ^ C:\BCC102\Include\windows\sdk\sal.h:1482:9: warning: unknown pragma ignored [-Wunknown-pragmas] #pragma endregion Input Buffer SAL 1 compatibility macros ^ In file included from InetState.prg:162: In file included from C:\BCC102\Include\windows\sdk\windows.h:199: In file included from C:\BCC102\Include\windows\sdk\windef.h:25: C:\BCC102\Include\windows\sdk\minwindef.h:19:9: warning: unknown pragma ignored [-Wunknown-pragmas] #pragma region Application Family or OneCore Family ^ In file included from InetState.prg:162: ... куча всего такого же и в конце вот это: In file included from InetState.prg:162: C:\BCC102\Include\windows\sdk\windows.h:310:9: warning: unknown pragma ignored [-Wunknown-pragmas] #pragma endregion ^ 1761 warnings generated. OBJ\IniGetSetConfig.c: OBJ\table_f8dogExpSite.c: OBJ\_hbmkaut_1main.c: Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc. Fatal: Unable to open file '???E.OBJ' кракозябы hbmk2[2transfer_db]: Error: Running linker. 2 Модуль - InetState.prg:162: исправленный \SAMPLES\Advanced\INET_CHECKER\InetState.prg #pragma BEGINDUMP #include <windows.h> // строка 162 #include "hbapi.h" /***************************************************************************************** * MACRO DEFINITION FOR CALL DLL FUNCTION ******************************************************************************************/ Как быть ?
|
|
|
|
| постоянный участник
|
Пост N: 4305
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.06.23 11:02. Заголовок: Andrey пишет Собрал ..
Andrey пишет цитата: | Собрал my.lib новым компилятором, добавил в проект где использую. |
| Если бы наоборот, то может быть и зашло. Я использовал lib собранную Bcc5.5 на hb 2.0 (лень переносить проект и отладку делать) в MiniGui с Bcc5.5 и с Bcc5.8 (hb из версии) - все ok!, правда использовал из lib только C ф-ии HB_FUNC (...) PS Lib из Bcc в сборках с msvc не использовал. Согласовывать тексты C из Bcc для msvc, для меня не подъемно, делал товарищ
|
|
|
|
| постоянный участник
|
Пост N: 4306
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.06.23 11:44. Заголовок: PS2 Попробуй в старо..
PS2 Попробуй в старом проекте выделить работу с каким то справочником (все собрано в одном prg, например) и получить hrb файл. В новом проекте подключить и запустить его работу. Hrb получать не ф-ей, а через hbmk2. Все внешние ф-ии подключи по REQUEST, какие то переведи в STATIC FUNCTION, даже если они будут дублироваться с др. STATIC FUNCTION в др. PRG
|
|
|
|
| постоянный участник
|
Пост N: 7418
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.06.23 11:05. Заголовок: Bcc5.5 и Bcc 5.8 и 7..
Bcc5.5 и Bcc 5.8 и 7.30 сильно отличаются. OBJ собранные на 5.5/8 не собираются в 7.30 Да и между собой 5.5 и 5.8 не особо дружат... Я всегда удаляю OBJ и собираю проект с чистого листа. Методом тыка определил, что русские буквы в названии папок и файлов НЕ ДОПУСКАЮТСЯ если в проект добавляешь свою библиотеку! Если полностью исходники, то собирается и с русскими буквами. Убрал русские буквы и мой проект собрался нормально.
|
|
|
|
|
| постоянный участник
|
Пост N: 7427
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.06.23 14:38. Заголовок: А как в коде програм..
А как в коде программы сделать проверку версий BCC ? Чтобы можно код под разными BCC собирать.
|
|
|
|
| moderator
|
Пост N: 2157
Зарегистрирован: 11.02.10
|
|
Отправлено: 17.06.23 17:34. Заголовок: Andrey пишет: как в..
Andrey пишет: цитата: | как в коде программы сделать проверку версий BCC ? |
| Например, как в программе ниже использовать функцию BorlandVersion() Скрытый текст
#include "hmg.ch" Function Main MsgDebug(BorlandVersion()) Return Nil function BorlandVersion() local cHexVer := hb_NumToHex( BorlandC() ) return SubStr( cHexVer, 1, 1 ) + "." + SubStr( cHexVer, 2 ) #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" HB_FUNC( BORLANDC ) { #ifdef __BORLANDC__ hb_retnl( __BORLANDC__ ); #else hb_retnl( 0 ); #endif } #pragma ENDDUMP
|
|
|
|
|
| постоянный участник
|
Пост N: 7428
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.06.23 17:56. Заголовок: Не совсем то... Но э..
Не совсем то... Но это тоже нужно ! Спасибо !!! Вот в коде нужно компилировать строки в зависимости от компилятора: #define FR_PRIVATE 0x10 #define FR_NOT_ENUM 0x20 #include "minigui.ch" #include "hbdyn.ch" .... *-----------------------------------------------------------------------------* // для ВСС 5.5 Function AddFont(cFontFile) Return AddFontResourceEx( cFontFile, FR_PRIVATE+FR_NOT_ENUM, 0 ) Function RemoveFont(cFontFile) Return RemoveFontResourceEx( cFontFile, FR_PRIVATE+FR_NOT_ENUM, 0 ) DECLARE DLL_TYPE_INT AddFontResourceEx ( DLL_TYPE_LPCTSTR lpszFilename, DLL_TYPE_DWORD flag, DLL_TYPE_LPVOID pdv ) IN GDI32.DLL DECLARE DLL_TYPE_BOOL RemoveFontResourceEx ( DLL_TYPE_LPCTSTR lpFileName, DLL_TYPE_DWORD flag, DLL_TYPE_LPVOID pdv ) IN GDI32.DLL *-----------------------------------------------------------------------------* // ВСС 7.30 не поддерживает дополнительную библиотеку dll.lib //Поэтому этот код должен быть переписан с использованием библиотеки calldll Function AddFont(cFontFile) Return HMG_CallDLL ("GDI32.DLL", HB_DYN_CTYPE_INT, "AddFontResourceEx", cFontFile, FR_PRIVATE+FR_NOT_ENUM, 0) Function RemoveFont(cFontFile) Return HMG_CallDLL ("GDI32.DLL", HB_DYN_CTYPE_BOOL, "RemoveFontResourceEx", cFontFile, FR_PRIVATE+FR_NOT_ENUM, 0)
|
|
|
|
| постоянный участник
|
Пост N: 7429
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.06.23 20:20. Заголовок: По тестировал новый ..
По тестировал новый компилятор BCC 7.30 с MiniGUI Extended Edition 23.01.0 (32-bit) ANSI Всё в программе работает штатно, даже избавился от повисания программы (ошибка пропадания окна/то есть, то нет) ! Что понравилось: 1) Собирает ресурсы правильно (мои 20Мб картинок и иконок показывает в программе правильно) 2) Собранный ехе-ник работает шутрее чем на BCC 5.8 (индексация, создание объектов) 3) Быстрей собирается ехе-ник после правки одного-двух модулей, буквально собирается за несколько секунд. у меня ехе-ник весит 26 мб Какие недостатки - кракозябы в ошибках, вот экран: Это можно как то исправить ? Григорий, а пускай ошибки на английском ВСЕГДА пишутся. Это Будет лучше кракозябов ! Всё, остаюсь на новом BCC 7.30 ! Спасибо БОЛЬШОЕ Григорий !
|
|
|
|
| moderator
|
Пост N: 2158
Зарегистрирован: 11.02.10
|
|
Отправлено: 18.06.23 20:39. Заголовок: Andrey пишет: ошибк..
Andrey пишет: цитата: | ошибки на английском ВСЕГДА пишутся |
| Да, это возможно сделать. Andrey пишет: Был рад помочь!
|
|
|
|
| |
Пост N: 142
Зарегистрирован: 12.06.06
|
|
Отправлено: 19.06.23 07:53. Заголовок: Andrey пишет: Всё, ..
Andrey пишет: цитата: | Всё, остаюсь на новом BCC 7.30 ! |
| Где его можно взять ?
|
|
|
|
| постоянный участник
|
Пост N: 7430
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.06.23 11:09. Заголовок: i3t4j6 пишет: Где е..
i3t4j6 пишет: У Григория !
|
|
|
|
| постоянный участник
|
Пост N: 7431
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.06.23 17:47. Заголовок: Григорий, а как напи..
Григорий, а как написать правильно в ресурсном файле для BCC 7.30 ? А то когда по ехе-нику свойство смотришь или в Менеджере задач, там кракозябы видны и нет по русскому имени программы. До этого стояло у меня так: ... VALUE "ProductName", "Моя программа\000" VALUE "ProductVersion", "5.хх\000" VALUE "Comments", "Создано Мною <xxxx@gmail.com>\000" } } BLOCK "VarFileInfo" { VALUE "Translation", 0x0419 0x04E3 }
|
|
|
|
| moderator
|
Пост N: 2159
Зарегистрирован: 11.02.10
|
|
Отправлено: 19.06.23 18:57. Заголовок: Andrey пишет: нет п..
Andrey пишет: цитата: | нет по русскому имени программы |
| Для получения русских букв в имени программы надо заменить два файла в папке \BCC102\bin\ на аналогичные файлы из поставки ВСС 5.5: - brcc32.exe - rw32core.dll Проверено - работает
|
|
|
Ответов - 91
, стр:
1
2
3
4
5
All
[только новые]
|
|