2012-03-19 94 views
2

我打算在我的应用程序中使用id3lib。我正在寻找一种将该库用作DLL的方法。我注意到他们以各种形式发布了图书馆:其中一个是windows binary。我在Windows中的目标平台,我将使用Qt 4.8。之后,我在windows二进制文件解压,我发现下面的文件夹版本:在C++应用程序中使用DLL

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

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

我该如何使用这个包没有任何头文件?这里的* .lib和* .exp文件的目的是什么?据我所知* .lib文件用于静态链接与我不想在我的程序中的函数。

+0

你的问题是Windows特定的,应该这样标记。 – 2012-03-19 06:52:54

+0

@BasileStarynkevitch:是的,对不起,我忘了。 – Donotalo 2012-03-19 07:06:21

回答

1

通常的做法是使用包含在C++文件中的头文件,链接到的.lib文件以及运行时需要的.dll文件。

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

在最坏的情况,你应该能够使用的工具如带的Depends.exe来查看导出的符号,并创建自己的.h文件,以配合 - 但它会更好地发现与发布发行.h文件。

2

你刚刚错过了标题。它位于包含子文件夹下(请参阅here),即使您将使用DLL,链接仍需要.lib文件。

+0

我有完整的id3lib源代码。 Windows二进制部分不带有任何头文件。我如何知道应该使用哪个头文件? – Donotalo 2012-03-19 07:08:33

+0

@Donotalo:按照罗伯特的回答中的链接。它直接导致id3.h. – 2012-03-19 18:22:21

+0

@HarryJohnston:id3.h不是要包含的文件。这里描述的是tag.h:http://id3lib.sourceforge.net/api/index.html。然而,我尝试了他们两个,但仍然无法解决一些未引用的链接。 – Donotalo 2012-03-20 04:31:23

相关问题