我在VC ++ Express 2010中创建了两个项目,一个是DLLTest,另一个是CODETest。

在DLLTest中,声明并定义一个函数func(),如下所示:

__declspec(dllexport) void  func() {...};


成功构建DLLTest项目,创建DLLTest.dll和DLLTest.lib文件。

在CODETest中,我要使用导出的函数,如下所示:

#include "DLLTest.h"
int main()
{
    ...
    func();
    ...
    return 0;
}


构建CODETest项目--->“无法解析的外部符号“ void __cdecl letterList(void)”时发生错误,但是当我将DLLTest.lib添加到CODETest项目的目录中时,构建过程成功。

我不知道为什么?感谢帮助。

最佳答案

这似乎不太可能,尤其是“ func”转换为“ letterList”的部分。但是,您必须告诉链接器也链接DLL的导入库,以便它可以解析从该DLL导入的标识符。在MSVC中最简单的方法是:

#include "DLLTest.h"
#pragma comment(lib, "dlltest.lib")


在CodeTest.cpp中。 #pragma与链接程序的“其他依赖项”设置具有相同的作用。

关于c++ - 如何在C++中使用从DLL导出的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5166774/

10-10 03:45