Использование сторонних библиотек, Как использовать функции из .dll? |
Здравствуйте, гость ( Вход | Регистрация )
Использование сторонних библиотек, Как использовать функции из .dll? |
azure |
22.4.2010, 11:52
Сообщение
#1
|
Студент Группа: Участник Сообщений: 60 Регистрация: 24.12.2009 Пользователь №: 1332 Спасибо сказали: 5 раз(а) Репутация: 0 |
Вопрос не столько по кросплатформенности, сколько по Qt + .dll в винде. Имеется девайс (pci-карта gpib) с драйверами и .dll + .h с функциями работы с устройством. dll идут под MS Visual C++ и Borland C++ Builder. Можно ли использовать эти .dll без использования вышеуказанных компиляторов? Конкретно интересует gcc/mingw? Если можно, то как?
|
|
|
Tonal |
22.4.2010, 13:03
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Можно использовать dll-ку собранную одним компилятором в другом если она удовлетворяет следующему набору условий:
* dll-ка экспортирует чисто С-шные функции. * из неё не вылетает исключений. * структуры содержат только примитивные данные или другие такие же структуры. * структуры передаются только по указателям. * память, выделенная в dll-ки в ней же и освобождается. * dll-ка не пытается освободить память выделенную приложением. * не используются зависимые от компилятора соглашения о вызовах. * не используются зависимые от компиляторов расширения dll-ек (типа пакетов от багланда). Уф, вроде всё. Если какие-то из этих требований будут нарушены, то нужно смотреть по месту... Да, маленький бонус: полностью абстрактные структуры (интерфейсы) использовать можно. Сообщение отредактировал Tonal - 22.4.2010, 13:05 |
|
|
Текстовая версия | Сейчас: 25.4.2024, 21:51 |