在同一解决方案中使用Win32项目中的DLL项目

时间:2015-07-24 22:35:32

标签: c++ windows dll visual-studio-2013

我有一个包含DLL项目和Win32 EXE项目的解决方案。

我希望EXE项目引用" Init" DLL中的函数。

在EXE.cpp文件中我有

Init(0);

我像这样引用它

error LNK2019: unresolved external symbol "unsigned long __cdecl Init(int)" (?Init@@YAKI@Z) references in function _wmain
在EXE项目属性中,我已经转到了链接器" Additonal Dependencies"并添加了" mydll.lib",并在常规选项卡中,我已将目录添加到"其他库目录"将指向我的DLL生成的mydll.lib文件

我没有得到关于能够找到mydll.lib文件的任何编译器投诉,但我确实得到了

dumpbin /exports mydll.lib

如果能够链接与我的EXE在同一项目中构建的DLL,我做错了什么?当我做_Init时,我唯一注意到的是我的Init函数列为{{1}}

1 个答案:

答案 0 :(得分:0)

来自评论:

您的DLL是用C语言编写的,但您正尝试从C ++程序中使用它。 C ++编译器不知道它是一个C函数,它假定它是一个C ++函数。使用extern“C”{}包装.h文件的#include。 - Hans Passant 7月24日22:54

哇..谢谢你的帮助!做出答案,我会接受。当我添加它时,我完全忘了将.cpp剥离到.c以用于新项目,直到你说了什么之后才意识到这一点。这与编译器为CPP命名错误的方式有关,我是对的吗? - 德里克7月24日22:56