Перейти к содержанию
Посмотреть в приложении

A better way to browse. Learn more.

Форум Академгородка, Новосибирск

A full-screen app on your home screen with push notifications, badges and more.

Чтобы установить это приложение на iOS и iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
Чтобы установить это приложение на Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Подключение библиотек

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

Рекомендуемые сообщения

Опубликовано
Если либа не специфическая, можно поискать в инете её аналог для майкрософта. Это может быть проще чем конвертировать.
Опубликовано
  • Автор
Эхх, в том и дело, что либа весьма специфическая и ее аналог для макрософта просто не существует... https://academ.club/html/emoticons/unsure.gif
Опубликовано

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

 

Сложный ответ: всё зависит от нескольких условий:

  • 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. Некоторые джедаи (не из нашего района) умудряются работать с объектными файлами от разных компиляторов, но не думаю, что подобные подвиги можно рекомендовать простым смертным... :-)

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

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

 

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

 

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

 

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

 

Опубликовано

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

Но, если эта dll-ка экспортирует не pure C или COM-образный интерфейс, то всё сразу становиться сложно.

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

Аккаунт

Навигация

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.