Visual c++,没有引用试图添加.dll

Visual C++, no references trying to add .dll

本文关键字:添加 dll 引用 c++ Visual      更新时间:2023-10-16

我创建了一个简单的。dll,我试图在一个简单的测试项目中使用它。但是,当我尝试添加引用时,没有可供选择的选项,也没有"浏览"选项。

我有一些怀疑这可能与我的PATH有关,因为当我安装CMake(一个无关的非visual studio项目的依赖项)时,CMake决定删除我PATH中的所有内容。

见我的截图:http://jsfiddle.net/t84BS/(data-uri可能无法在IE中显示)

我想我至少应该在那里看到一些。net引用

我不确定您应该在IDE中看到什么。你有。def文件吗?要从dll中获取所有导出的符号,请运行dumpbin /EXPORTS my.dll

对于PATH变量,运行for %G in ("%path:;=" "%") do @echo %G以在单独的行上查看每个路径。

添加路径类型为PATH=%PATH%;C:MyNewPath

可能所有的路径都被设置而不是被覆盖。检查autoexec.bat最后重新安装Visual Studio

在原生c++中,不添加dll作为引用。您需要包含从DLL创建的LIB或DEF文件的头文件和链接。

首先,需要包含提供所需代码的头文件。确保任何DLL函数在这里都被标记为__declspec(dllimport)(在构建DLL本身时它们应该是dlexport,在使用它时应该是dllimport)。这可能需要在文件顶部的一个定义或其他东西。一种常见的方法是:

#ifdef IMPORT_MY_LIB
#    define MY_LIB_API __declspec(dllimport)
#else
#    define MY_LIB_API __declspec(dllexport)
#endif

接下来,您需要链接到LIB。有两种方法可以做到这一点,一种更正确,另一种更简单。

正确的方法是进入项目属性,在链接器设置,输入部分,添加库作为一个额外的依赖(选项应该看起来像VS2008和2010,也许其他)。

更简单的方法是添加一个:

,这是我用于测试并在生产前替换为正确的方法。
#pragma comment(lib, "Library.lib")

指令到你的一个文件。

LIB文件是在你编译你的DLL时创建的,并且应该用来将DLL链接到其他DLL。

有一个在运行时链接的方法,使用Windows API,以后可能会感兴趣,但不是必需的。