我制作了一个带有编译头文件的动态库并编译了一个 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 项目最容易:
看起来您正在将一些奇怪的 .Net 东西添加到您的 C++ 本机代码中,但这也是本机代码项目引用另一个项目的最简单方法。
如果您想调用该 DLL 中的函数,那么是的,您可能希望包含该 DLL 的头文件。
有几种方法可以做到这一点,但都有一个共同点,即您需要在项目中包含标头,以便知道这些函数,因为 C++ 没有反射。
您可以跳过静态链接并使用 LoadLibrary 加载 dll 并使用 GetProcAddress 获取函数,这样做的好处是您可以使 DLL 成为可选。如果它不存在,您可以避免调用它或提供一些用户友好的错误消息。
您可以静态链接到 dll,这意味着将 dll 的 .lib 文件添加到您的项目中,有几种方法可以做到这一点,老派的方法是将它添加到您的解决方案/链接器/输入/附加的属性中依赖项,然后确保 dll 在 exe 搜索路径中。如果未找到,您将收到一条错误消息。
您可以在此处查看文档:http: //msdn.microsoft.com/en-us/library/ms235636 (v=vs.80).aspx (创建和使用动态链接库)
我可以给你一个关于如何在 VS 2010 中添加 dll 的答案
步骤:右键单击解决方案资源管理器,属性,配置属性,常规,输出目录。在这里按右箭头并选择眉毛。浏览到 DLL 目录。
就这样。