crossplatform.ru

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

> Использование сторонних библиотек, Как использовать функции из .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? Если можно, то как?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 23.4.2010, 8:27
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(BRE @ 23.4.2010, 10:29) *
dll нельзя слинковать с exe
ты имеешь в виду статически?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 23.4.2010, 8:57
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 23.4.2010, 9:27) *
ты имеешь в виду статически?

Назовем это динамической линковкой.
Например, так линкуются QtCore, QtGui, ...
Мы не пишем код, который загружает эти библиотеки и настраивает адреса функций. Все это делает загрузчик, и если одной из dll не будет найдено, то еще до входа в main мы получим сообщение от загрузчика, что данная программа не может быть выполнена.
В линукс линкер может работать напрямую с so-файлами, в венде же вместе с dll, генерируется небольшой файл lib (.a), который линкер использует при компоновке.

Другой путь использовать dll, это загрузка его руками в своем коде, резольвинг необходимых функций и их использование. Для этого способа, этот файл lib (.a) не нужен, и программа будет запущенна даже если его нет (загрузчик про него ничего не знает и соответственно искать не будет). Это вариант для плагинов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- azure   Использование сторонних библиотек   22.4.2010, 11:52
- - Litkevich Yuriy   Цитата(azure @ 22.4.2010, 15:52) Можно ли...   22.4.2010, 12:16
|- - azure   Спасибо за подробные указания. Как узнать, сделана...   22.4.2010, 12:29
- - Litkevich Yuriy   Цитата(azure @ 22.4.2010, 16:29) "по...   22.4.2010, 12:58
- - Влад   Посмотри экспорты этой DLL (например, утилитой Dep...   22.4.2010, 13:00
- - Tonal   Можно использовать dll-ку собранную одним компилят...   22.4.2010, 13:03
- - Litkevich Yuriy   Цитата(Влад @ 22.4.2010, 17:00) Если в эк...   22.4.2010, 13:40
- - Iron Bug   Цитата(Litkevich Yuriy @ 22.4.2010, 16:40...   22.4.2010, 14:39
- - Litkevich Yuriy   я имел в виду "возможно ли на этапе компиляци...   22.4.2010, 15:49
|- - azure   Цитата(Litkevich Yuriy @ 22.4.2010, 15:49...   22.4.2010, 16:08
- - Litkevich Yuriy   Цитата(azure @ 22.4.2010, 20:08) .lib (эт...   22.4.2010, 16:12
|- - BRE   Цитата(Litkevich Yuriy @ 22.4.2010, 17:12...   22.4.2010, 16:18
- - Litkevich Yuriy   ага, т.е. если у меня в распоряжении только dll...   22.4.2010, 16:38
|- - BRE   Цитата(Litkevich Yuriy @ 22.4.2010, 17:38...   22.4.2010, 16:47
- - Iron Bug   люди, у меня такое ощущение, что у вас в голове си...   22.4.2010, 20:23
|- - BRE   Цитата(Iron Bug @ 22.4.2010, 21:23) а то ...   22.4.2010, 20:36
- - Iron Bug   Цитата(BRE @ 22.4.2010, 23:36) А мы про в...   22.4.2010, 20:43
|- - BRE   Цитата(Iron Bug @ 22.4.2010, 21:43) принц...   22.4.2010, 20:48
- - Iron Bug   Цитата(BRE @ 22.4.2010, 23:48) Разве. с т...   22.4.2010, 21:41
- - BRE   венда/линукс под рукой есть? Сделай небольшой прим...   22.4.2010, 21:45
- - Iron Bug   ну вот тебе кусок из реального проекта. весь не пр...   22.4.2010, 23:36
|- - BRE   Мы говорим про венду! Посмотри внимательно, чт...   23.4.2010, 6:29
- - Litkevich Yuriy   Цитата(BRE @ 23.4.2010, 10:29) dll нельзя...   23.4.2010, 8:27
|- - BRE   Цитата(Litkevich Yuriy @ 23.4.2010, 9:27)...   23.4.2010, 8:57
- - Tonal   В винде не все линкеры умеют пользоваться символам...   23.4.2010, 9:02
- - Iron Bug   Цитата(BRE @ 23.4.2010, 9:29) Мы говорим ...   23.4.2010, 11:56
- - BRE   Iron Bug, ты все динамические библиотеки загружаеш...   23.4.2010, 12:21
- - Iron Bug   Цитата(BRE @ 23.4.2010, 15:21) Iron Bug, ...   23.4.2010, 13:52
|- - BRE   Цитата(Iron Bug @ 23.4.2010, 14:52) и нев...   23.4.2010, 14:07
- - Iron Bug   Цитата(BRE @ 23.4.2010, 17:07) А кто прик...   23.4.2010, 14:29
|- - BRE   Цитата(Iron Bug @ 23.4.2010, 15:29) я зна...   23.4.2010, 14:46
- - Iron Bug   я вообще-то изначально отвечала на исходный вопрос...   23.4.2010, 17:57
|- - Tonal   Цитата(Iron Bug @ 23.4.2010, 21:57) ну ту...   26.4.2010, 7:48
- - Litkevich Yuriy   Тему разделил: Сборка библиотеки под ОС Symbian   23.4.2010, 20:48


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 22.11.2024, 22:49