IPB
 

Здравствуйте, гость ( Вход | Регистрация )

Поддержать форум
 
Ответить в данную темуНачать новую тему
> Подключение библиотек, написанных на Билдере
Aequanimus
Отправлено: 05.12.2007, 22:21
+Цитировать сообщение


Activist
***

Группа: Участник
Сообщений: 278
Регистрация: 06.04.2005
Из: здесь
Пользователь №: 8901



В общем, сабж в том, что надо прилинковать либу, написанную на билдере к проекту на MSVC. Либы борланда имеют формат OMF, а у microsoft - формат COFF. В инете нашел кучу конверторов из COFF в OMF, но ни одного, делающего обратное. Может кто-нибудь знает такой, или способ сделать это еще как.


--------------------
Scientia est potentia.
 
Перейти в начало страницы
Barthezz
Отправлено: 06.12.2007, 0:28
+Цитировать сообщение


Безбашенный оптимист
*****

Группа: Участник
Сообщений: 2787
Регистрация: 03.02.2005
Из: Новосиб-city.
Пользователь №: 6955



Если либа не специфическая, можно поискать в инете её аналог для майкрософта. Это может быть проще чем конвертировать.


--------------------
Завтра будет.
Лучше.
 
Перейти в начало страницы
Aequanimus
Отправлено: 06.12.2007, 2:55
+Цитировать сообщение


Activist
***

Группа: Участник
Сообщений: 278
Регистрация: 06.04.2005
Из: здесь
Пользователь №: 8901



Эхх, в том и дело, что либа весьма специфическая и ее аналог для макрософта просто не существует... unsure.gif


--------------------
Scientia est potentia.
 
Перейти в начало страницы
Tonal
Отправлено: 06.12.2007, 12:18
+Цитировать сообщение


Experienced
****

Группа: Участник
Сообщений: 769
Регистрация: 28.06.2005
Из: Новосибирск Ельцовка
Пользователь №: 11557



Простой ответ - обломись.

Сложный ответ: всё зависит от нескольких условий:
  • 1. Тип библиотеки:
    • 1. Библиотека статическая
    • 2. Импортная к некоторой dll-ки?
  • 2. Какой Апи она экспортирует:
    • 1. COM
    • 2. чистый C
    • 3. Интерфейсы (абстрактные чисто виртуальные структуры (типа COM) (все параметры или интерфейсы, или POD-типы))
    • 4. C++ классы и функции
Если п1.1 - библиотека статическая - собери её в dll-ку
Для dll-ки

Если п2.1 - используй COM
Если п2.2 - ищи, как сделать импортную библиотеку исходной dll-ки для MSVC - инфы навалом.
Если п2.3 - то же что и предыдущий. Только нужно убедится, что в вызывающим коде не используются деструкторы, явно или неявно.
Если п2.4 - сделай dll-ку, которая экспортирует Апи какой-нибудь из первых трёх категорий.

Ещё общие советы:
Обрати внимание на п3. соглашения о вызовах должны быть совместимы.
Исключения не в коем случае не должны покидать пределы библиотеки.
Память всегда должна освобождаться там же где она выделялась.

P.S. Некоторые джедаи (не из нашего района) умудряются работать с объектными файлами от разных компиляторов, но не думаю, что подобные подвиги можно рекомендовать простым смертным... :-)


--------------------
Буддизм Алмазного пути - Линия Карма Кагью
 
Перейти в начало страницы
Nox Metus
Отправлено: 06.12.2007, 17:44
+Цитировать сообщение


Patriarch
**********

Группа: Участник
Сообщений: 9084
Регистрация: 18.05.2004
Пользователь №: 2398



Причины, по которым нельзя использовать BCB библиотеку, котороя не является import-library, в MSVC, связана не столько с форматом COFF/OMF, а с гораздо более прозаичной вещью: у BCB и MSVC совершенно несовместимые поддержки времени исполнения. Т.е. если вам даже удалось бы чудесным образом сконвертировать один формат в другой, это бы вам не помогло ни на йоту.


--------------------
Ich weiß nicht, was du sagest.
 
Перейти в начало страницы
Nemo
Отправлено: 10.12.2007, 21:27
+Цитировать сообщение


Veteran
*****

Группа: Участник
Сообщений: 2040
Регистрация: 30.01.2004
Из: ВЗ
Пользователь №: 1364



А ещё если библиотека плюсовая, то она линковаться не будет даже если поменять формат - у BCB и MSVC name mangling разный (т.е. плюсовые имена функций пишутся в объектный файл по-разному).


--------------------
The only creature is dangerous for me... Myself....
 
Перейти в начало страницы
OCTAGRAM
Отправлено: 11.12.2007, 0:22
+Цитировать сообщение


Activist
***

Группа: Участник
Сообщений: 320
Регистрация: 10.12.2006
Пользователь №: 36162



Помню, находил и в обратную сторону года два назад.

Недолгая гуглёжка приводит к http://greybird.developpez.com/fichiers/Omf2Coff.exe (59Кб)

Я его так и не проверил.

Таки вопросы Tonal остались неотвеченными. Исходники хоть есть?


--------------------
If you want to get to the top, you have to start at the bottom

xmpp:octagram@jabber.ru
 
Перейти в начало страницы
Tonal
Отправлено: 11.12.2007, 10:54
+Цитировать сообщение


Experienced
****

Группа: Участник
Сообщений: 769
Регистрация: 28.06.2005
Из: Новосибирск Ельцовка
Пользователь №: 11557



coff2omf и omf2coff работают над библиотеками импорта. Имея dll-ку и хедер к ней, библиотеку импорта и так можно без большого труда сделать. Тот же mingw вообще может обходиться без библиотеки импорта - одной dll-кой.
Но, если эта dll-ка экспортирует не pure C или COM-образный интерфейс, то всё сразу становиться сложно.


--------------------
Буддизм Алмазного пути - Линия Карма Кагью
 
Перейти в начало страницы

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Удалить установленные форумом cookies · Отметить все сообщения прочитанными
RSS Текстовая версия