【发布时间】:2011-02-07 13:11:16
【问题描述】:
我有一个包含两个项目的解决方案:一个是带有简单类 (dll_test) 的简单 dll。第二个项目引用了dll项目,应该是用来测试dll项目的(dll_tester)。 dll 项目构建良好,但 tester 项目总是抱怨找不到 dll_test.lib 而不是 dll_test.dll,就像它应该找到的那样。
同样,这适用于 Windows 7 计算机上的 Visual Studio 2008。我不认为这有什么区别,但是我用 dll_test 项目开始了解决方案,后来又添加了 dll_tester 项目。
有人知道怎么解决吗?
【问题讨论】:
-
澄清一下,您是否将 dll_test.lib 添加到 Properties->Linker->Input 及其到 Properties->Linker->Additional Library Directories 的路径?
-
不,我没有。但它不应该是创建一个 lib,它应该是创建一个 dll。
-
你需要有头文件,DLL文件和它对应的LIB文件来静态引用一个DLL项目。实际代码当然在 DLL 中,但需要 LIB 文件,以便链接器可以静态链接到 DLL。编译 DLL 项目时,链接器应创建 DLL 文件及其 LIB 文件。
-
嗯,好的。不过,我在任何地方都没有看到任何 LIB 文件。我查看了解决方案和各个项目的所有 Debug 文件夹。也许我应该为 dll 编译一次,为 lib 编译一次?
-
这可能是因为您忘记从 DLL 导出函数。 DLL 上的 Dumpbin.exe /exports 向您显示。您必须使用 __declspec(dllexport) 来导出函数。
标签: c++ visual-studio-2008 dll reference