On-line: tnsr2, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост 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 что-то конфликтует...
Как быть ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 91 , стр: 1 2 3 4 5 All [только новые]


администратор




Пост N: 7767
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.23 16:34. Заголовок: Andrey MINGW не про..


Andrey
MINGW не пробовал ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7415
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.06.23 18:12. Заголовок: Dima пишет: MINGW н..


Dima пишет:

 цитата:
MINGW не пробовал ?


Под него не было (может сейчас есть) библиотек и примеров средств защиты ключей HASP.
Получаемый ехе-ник собирается BCC и lib от HASP (сейчас это продукт фирмы Sentinel HL HASP Gemalto)
https://www.euromobile.ru/produkciya/aparatnje_kluchi_sentinel_hl_hasp-gemalto/
Есть ещё библиотеки от MS, но тоже пока руки не дошли.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7768
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.23 18:33. Заголовок: Да , я забыл что у т..


Да , я забыл что у тебя Hasp...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2156
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.06.23 18:52. Заголовок: Andrey пишет: как п..


Andrey пишет:

 цитата:
как предусмотреть использование этих разных функций для разных компиляторов BCC ?


Это - псевдо-функция, и она уже учитывает эту разницу

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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++.

Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 7770
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.23 18:54. Заголовок: gfilatov2002 Оперед..


gfilatov2002
Опередил ))

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост 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
******************************************************************************************/

Как быть ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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, для меня не подъемно, делал товарищ

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4306
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.06.23 11:44. Заголовок: PS2 Попробуй в старо..


PS2
Попробуй в старом проекте выделить работу с каким то справочником (все собрано в одном prg, например) и получить hrb файл. В новом проекте подключить и запустить его работу. Hrb получать не ф-ей, а через hbmk2. Все внешние ф-ии подключи по REQUEST, какие то переведи в STATIC FUNCTION, даже если они будут дублироваться с др. STATIC FUNCTION в др. PRG

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 и собираю проект с чистого листа.

Методом тыка определил, что русские буквы в названии папок и файлов НЕ ДОПУСКАЮТСЯ если
в проект добавляешь свою библиотеку!
Если полностью исходники, то собирается и с русскими буквами.
Убрал русские буквы и мой проект собрался нормально.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7427
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.23 14:38. Заголовок: А как в коде програм..


А как в коде программы сделать проверку версий BCC ?
Чтобы можно код под разными BCC собирать.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2157
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 17.06.23 17:34. Заголовок: Andrey пишет: как в..


Andrey пишет:

 цитата:
как в коде программы сделать проверку версий BCC ?


Например, как в программе ниже использовать функцию BorlandVersion()

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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)


Спасибо: 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 ! Спасибо БОЛЬШОЕ Григорий !

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2158
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.06.23 20:39. Заголовок: Andrey пишет: ошибк..


Andrey пишет:

 цитата:
ошибки на английском ВСЕГДА пишутся


Да, это возможно сделать.

Andrey пишет:

 цитата:
Спасибо БОЛЬШОЕ Григорий


Был рад помочь!


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 142
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 19.06.23 07:53. Заголовок: Andrey пишет: Всё, ..


Andrey пишет:

 цитата:
Всё, остаюсь на новом BCC 7.30 !


Где его можно взять ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7430
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.06.23 11:09. Заголовок: i3t4j6 пишет: Где е..


i3t4j6 пишет:

 цитата:
Где его можно взять ?


У Григория !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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
}


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2159
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 19.06.23 18:57. Заголовок: Andrey пишет: нет п..


Andrey пишет:

 цитата:
нет по русскому имени программы


Для получения русских букв в имени программы надо заменить два файла в папке \BCC102\bin\ на аналогичные файлы из поставки ВСС 5.5:
- brcc32.exe
- rw32core.dll

Проверено - работает

Спасибо: 1 
ПрофильЦитата Ответить
Ответов - 91 , стр: 1 2 3 4 5 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 34
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет