我有一个包含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}}
答案 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