2

我打算在我的应用程序中使用id3lib。我正在寻找一种将库用作 DLL 的方法。我注意到他们以各种形式发布了该库:其中之一是windows binary。我在 Windows 中的目标平台,我将使用 Qt 4.8。在我提取 Windows 二进制文件后,我在 Release 文件夹中找到了以下文件:

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

我知道如何在 Qt 中使用 DLL,给定 DLL、一个或多个函数原型所在的头文件,以及有或没有 *.lib 文件。这个包没有头文件。

我应该如何在没有任何头文件的情况下使用这个包?*.lib 和 *.exp 文件的目的是什么?据我所知,*.lib 文件用于与我的程序中不需要的函数进行静态链接。

4

2 回答 2

2

你刚刚错过了标题。它位于 include 子文件夹下(请参见此处),即使您将使用 DLL,也仍需要 .lib 文件进行链接。

于 2012-03-19T06:57:23.677 回答
1

通常的做法是使用 C++ 文件中的头文件#included,链接到的 .lib 文件和运行时需要的 .dll。

头文件应该/可能在另一个包中,因为相同的头文件可能用于不同类型的链接策略。

在最坏的情况下,您应该能够使用诸如depends.exe 之类的工具来查看导出的符号并创建您自己的h 文件以进行匹配——但最好找到随发行版发布的.h 文件。

于 2012-03-19T06:58:56.153 回答