Работа с DLL в приложении C ++ - PullRequest
2 голосов
/ 19 марта 2012

Я планирую использовать id3lib в моем приложении. Я ищу способ использовать библиотеку в качестве DLL. Я заметил, что они выпустили библиотеку в различной форме: одна из них - Windows двоичная . Моя целевая платформа в Windows, и я буду использовать Qt 4.8. После того, как я извлек файлы в двоичном файле Windows, я нашел следующие файлы в папке Release:

  • id3lib.dll
  • id3lib.exp
  • id3lib.lib

Я знаю, как использовать DLL в Qt, учитывая DLL, один или несколько заголовочных файлов, в которых находятся прототипы функций, с файлом * .lib или без него. Этот пакет не поставляется с заголовочным файлом.

Как мне использовать этот пакет без какого-либо заголовочного файла? Какова цель файлов * .lib и * .exp здесь? Насколько я знаю, * .lib файлы используются для статического связывания с функциями, которые мне не нужны в моей программе.

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Вы только что пропустили заголовок.Он доступен в подпапке include (см. здесь ), также файл .lib по-прежнему необходим для компоновки, даже если вы будете использовать DLL.

1 голос
/ 19 марта 2012

Обычный способ - использовать заголовочный файл #, включенный в файл C ++, файл .lib для ссылки и .dll требующийся во время выполнения.

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

В худшем случае вы должны иметь возможность использовать инструмент, такой как зависящий от.exe, для просмотра экспортированных символов и создания собственного h-файла для сопоставления, но было бы лучше найти файл .h, выпущенный вместе с выпуском.

...