我在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项目,成功构建过程。
我不知道为什么?谢谢你的帮助。
答案 0 :(得分:2)
这似乎都不太可能,尤其是“func”转换为“letterList”的部分。但是,您必须告诉链接器还链接DLL的导入库,以便它可以解析从该DLL导入的标识符。在MSVC中最简单的方法是:
#include "DLLTest.h"
#pragma comment(lib, "dlltest.lib")
CodeTest.cpp中的。 #pragma与链接器的Additional Dependencies设置完全相同。