powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Скомпилить библиотеку C++Builder в MS Visual Studio
8 сообщений из 8, страница 1 из 1
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663625
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некоторая библиотека, написанная на C++Builder 6.

Это некая сторонняя библиотека, C++ обертка от разработчика, и поверх уже наш код. на сколько мне удалось понять, все в целом компиляторонезависимое.

Хотелось бы работать с кодом из MS Visual Studio, в виду этого вижу три варианта:

1. сделать проект в Visual Studio С++, и там же его собрать в dll компилятором Microsoft;
2. сделать проект в Visual Studio C++, рядом разместить бинарники и файлы заголовков
для компилятора борланда, и подрихтовав настройки проекта в VS вынудить чтоб
компиляция проходила компилятором борланда;
3.сделать проект в Visual Studio C++, рядом файлы борланда, создать проект борланда (*.bpr)
и компилировать борландом через cmd файл.

последний вариант я попробовал, но хочется чтоб VS не сыпала ошибок, и видеть полноценный Output.

с 1м вариантом, уперся в пару несчастных ошибок вида...
Error 319 error LNK2019: unresolved external symbol "Error 319 error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall POLYDATAEX::POLYDATAEX(void)" (__imp_??0POLYDATAEX@@QAE@XZ) referenced in function "int __fastcall CentreObject(struct POLYDATAEX const *,struct IMGDRAW const *,struct IMGCONTEXT const *,int,struct FRAME *)" (?CentreObject@@YIHPBUPOLYDATAEX@@PBUIMGDRAW@@PBUIMGCONTEXT@@HPAUFRAME@@@Z) M:\...obj

не могу идентифицировать в чем трабла. это обойти можно? есть мнения?

2й вариант - там море настроек в компиляторе, не знаю с чего начать. поделитесь пояснениями, хотябы на словах, возможно лиэто, и какой необходимый минимум для этого нужно перенастроить?
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663865
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Кифирчик
Error 319 error LNK2019: unresolved external symbol "Error 319 error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall POLYDATAEX::POLYDATAEX(void)" (__imp_??0POLYDATAEX@@QAE@XZ) referenced in function "int __fastcall CentreObject(struct POLYDATAEX const *,struct IMGDRAW const *,struct IMGCONTEXT const *,int,struct FRAME *)" (?CentreObject@@YIHPBUPOLYDATAEX@@PBUIMGDRAW@@PBUIMGCONTEXT@@HPAUFRAME@@@Z) M:\...obj

не могу идентифицировать в чем трабла. это обойти можно? есть мнения?
Вот конкретно в этом сообщении - линкер не видит реализации конструктора POLYDATAEX::POLYDATAEX(void), который используется в функции CentreObject(...)
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663956
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в файле где эта ошибка, есть ссылка на MAPTYPE.H (который в проекте, и студия подсвечивает что он виден)

а в MAPTYPE.H:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
define _DLLCLASS __declspec( dllimport )
...
typedef struct _DLLCLASS POLYDATAEX
{
  POLYDATAEX() { memset(this, 0, sizeof(POLYDATAEX)); }
 ....
}
  POLYDATAEX;



как я понимаю "реализации конструктора POLYDATAEX::POLYDATAEX(void)" имеется

вызов в CenterObject:
Код: plaintext
1.
2.
3.
4.
5.
6.
int _fastcall CentreObject(const POLYDATAEX* pdata, const IMGDRAW* draw,
                           const IMGCONTEXT * context, int test,
                           FRAME * border)
...
  POLYDATAEX data;
  data.Count      = 1;



тут что-то еще (
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663959
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчик,

надо делать вариант

1)сделать проект в Visual Studio С++, и там же его собрать в dll компилятором Microsoft;

На сколько я знаю, C++Builder генерирует бинарно несовместимые с VC объектные модули.
(я могу ошибаться, но такой способ 100% будет работать).
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663972
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНа сколько я знаю, C++Builder генерирует бинарно несовместимые с VC объектные модули.тем не менее, dll от билдера статически получится, я думаю, подключить к проекту на студии. В обратную сторону, во всяком случае, у меня получалось линковать.
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663986
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже 100% должно в студии компилиться
нашел в коде
Код: plaintext
1.
2.
3.
4.
5.
    #if defined(__BORLANDC__) // Для Borland C++ 
    ... 
    #else                     // Для Visual C++ 
    ... 
    #endif
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38663997
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Кифирчик, может у вас obj файлы от билдера остались? Удалите все.
...
Рейтинг: 0 / 0
Скомпилить библиотеку C++Builder в MS Visual Studio
    #38664510
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Кифирчик, может у вас obj файлы от билдера остались? Удалите все.
не, проект создавал в отдельной папке, никаких файлов C++Bulder не было.

отозвались разработчики либы,
проблему решила замена
Код: plaintext
1.
2.
3.
4.
5.
6.
typedef struct _DLLCLASS POLYDATAEX
{
  POLYDATAEX() { memset(this, 0, sizeof(POLYDATAEX)); }
 ....
}
  POLYDATAEX;



на

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
typedef struct  POLYDATAEX 
{ 
  POLYDATAEX(); 

} 
  POLYDATAEX; 

inline POLYDATAEX::POLYDATAEX() 
{ memset(this, 0, sizeof(POLYDATAEX)); }



так вот. но, блин, в программе эту библиотеку все равно не удалось подцепить (
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Скомпилить библиотеку C++Builder в MS Visual Studio
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]