如何在C ++中使用从DLL导出的函数?

时间:2011-03-02 11:23:58

标签: c++ dll

我在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项目,成功构建过程。

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

1 个答案:

答案 0 :(得分:2)

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

#include "DLLTest.h"
#pragma comment(lib, "dlltest.lib")
CodeTest.cpp中的

。 #pragma与链接器的Additional Dependencies设置完全相同。