我在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/