如何在单独的项目中包含我的C ++ DLL?

时间:2012-12-13 19:35:04

标签: c++ dll visual-studio-2012

这个问题似乎显而易见,但我遇到了很多麻烦,最后我不得不在经过大量搜索后发帖。

我目前有两个Visual Studio窗口打开。一个是Win32 Console-> DLL项目,它导出一个类,在输出目录中我有:

  • .dll文件
  • .exp文件
  • .pdb文件
  • .lib文件

我已将DLL文件放入我的其他项目的输出目录中,就像我对所有DLL一样,并且通常可以正常工作。然后,我将目录添加到链接器的库目录中。

但与我使用的大多数库不同,我认为我做错了或者我误解了它是如何工作的,我没有.h [pp]文件,所以我不知道我应该如何将这些函数包含在我的码。我宁愿不使用仅限Windows的黑客攻击(我只想将其限制在DLL项目中,以便可以轻松移植它。)

任何人都可以告诉我我做错了什么吗?

3 个答案:

答案 0 :(得分:1)

没有任何'hacky'或'windows'具体关于将.h文件提供给其他项目。您的.lib文件将提供完成构建所需的信息。请参阅:How do I use a third party dll in Visual Studio C++?

答案 1 :(得分:0)

您是否将.dll对应的.lib文件添加到其他项目的目录中?

链接器使用的是.lib文件,而不是DLL(在运行时由加载程序使用)。

答案 2 :(得分:0)

.dll是一个共享库,而不是静态库(Windows上的.lib)。

编译项目时必须始终链接静态库,并且可以使用标题(.h / .hpp)文件轻松调用其函数,而共享库有两个选项:

  • 静态链接(在编译时,但是这样做的方式与静态库不同)
  • 动态链接(在运行时)

我建议你阅读这篇深入的文章:http://www.codeproject.com/Articles/85391/Microsoft-Visual-C-Static-and-Dynamic-Libraries

另见维基百科文章:https://en.wikipedia.org/wiki/Dynamic-link_library