【发布时间】:2012-10-16 02:13:50
【问题描述】:
我制作了一个带有已编译头文件的动态库并编译了一个 DLL(使用 Visual Studio 2012)。
我还有一个使用 Visual Studio 2012 制作的 C++ 项目,我想引用之前生成的 DLL。
如何在我的 Visual Studio 2012 C++ 项目中引用该(动态库)DLL?如果我想使用库的功能,是否还需要指向头文件(.h)?
【问题讨论】:
我制作了一个带有已编译头文件的动态库并编译了一个 DLL(使用 Visual Studio 2012)。
我还有一个使用 Visual Studio 2012 制作的 C++ 项目,我想引用之前生成的 DLL。
如何在我的 Visual Studio 2012 C++ 项目中引用该(动态库)DLL?如果我想使用库的功能,是否还需要指向头文件(.h)?
【问题讨论】:
我发现使用项目属性对话框中的 Framework and References 项来引用 DLL 项目最简单:
看起来您在 C++ 本地代码中添加了一些奇怪的 .Net 内容,但这也是本地代码项目引用另一个项目的最简单方法。
如果您想调用该 DLL 中的函数,那么是的,您可能希望包含该 DLL 的头文件。
【讨论】:
您可以在此处查看文档:http://msdn.microsoft.com/en-us/library/ms235636(v=vs.80).aspx(创建和使用动态链接库)
【讨论】:
有几种方法可以做到这一点,但都有一个共同点,您需要在项目中包含标头,以便知道函数,因为 C++ 没有反射。
您可以跳过静态链接并使用 LoadLibrary 加载 dll 并使用 GetProcAddress 获取函数,这样做的好处是您可以使 DLL 成为可选。如果它不存在,您可以避免调用它或提供一些用户友好的错误消息。
您可以静态链接到 dll,这意味着将 dll 的 .lib 文件添加到您的项目中,有几种方法可以做到这一点,老派的方法是在解决方案的属性中添加它/linker/input/additional dependencies 然后确保 dll 在 exe 搜索路径中。如果找不到,您将收到一条错误消息。
【讨论】:
#include header.h 有什么不同?
我可以给你一个关于如何在 VS 2010 中添加 dll 的答案
步骤: 右键单击解决方案资源管理器,属性,配置属性,常规,输出目录。 在这里按右箭头并选择眉毛。 浏览到 DLL 目录。
仅此而已。
【讨论】: