Работа с DLL в приложении C++
Я планирую использовать id3lib в моем приложении. Я ищу способ использовать библиотеку в качестве DLL. Я заметил, что они выпустили библиотеку в различной форме: одной из них является Windows двоичная. Моя целевая платформа в Windows, и я буду использовать Qt 4.8. После того, как я извлек файлы в двоичном файле Windows, я нашел следующие файлы в папке Release:
- id3lib.dll
- id3lib.exp
- id3lib.lib
Я знаю, как использовать DLL в Qt, учитывая DLL, один или несколько файлов заголовков, в которых находятся прототипы функций, с файлом *.lib или без него. Этот пакет не поставляется с заголовочным файлом.
Как я должен использовать этот пакет без какого-либо заголовочного файла? Какова цель файлов *.lib и *.exp здесь? Насколько я знаю, *.lib файлы используются для статического связывания с функциями, которые мне не нужны в моей программе.
2 ответа
Обычный курс - использовать заголовочный файл #include в файле C++, файл.lib для ссылки и файл.dll, необходимый во время выполнения.
Файл заголовка должен / может быть в другом пакете, так как тот же заголовок, вероятно, используется для различных видов стратегий связывания.
В худшем случае вы сможете использовать инструмент, такой как зависящий от.exe, для просмотра экспортированных символов и создания собственного h -файла для сопоставления, но было бы лучше найти файл.h, выпущенный вместе с выпуском.
Вы только что пропустили заголовок. Он доступен в подпапке include (см. Здесь), также.Lib-файл все еще необходим для компоновки, даже если вы будете использовать DLL.