我正在使用vs2012创建一个小包装DLL,链接到用VC6构建的另一个DLL(.lib)。链接到vc6时未解决的符号dll/lib
我得到这样的链接错误:
error LNK2019: unresolved external symbol [email protected]
我添加了VC6的dll到链接线提供的库文件,正如我在过去所做的那样......有一些版本问题就在这里?在VC6 DLL头文件在我认为是标准的方式声明功能:
#define DLLIMPORT extern "C" __declspec(dllimport)
DLLIMPORT ULONG WINAPI functionName(...);
使用DUMPBIN /在VC6库文件出口显示“functionName”没有小鬼前缀和“@ 8” ..不知道这是一个问题,或者只是对我来说,只是dumpbin对我很好,并且对我有影响。
我不是一个Windows的人,不知道为什么链接器没有找到符号...帮助!
发回来,你不想要它。您必须删除DLLIMPORT和WINAPI,但如果该文件出现在.h文件中,则该文件不太可能正确。 –
恩,感谢您的评论,但为什么我必须删除DLLIMPORT和WINAPI? DLLIMPORT告诉编译器/链接器,我正在引用的函数将在dll中提供,这是正确的。 WINAPI是调用约定,也是正确的.. –
DLLIMPORT说DLL有一个* extra *导出,其名称以__imp开头。 WINAPI说调用约定是__stdcall,它会产生额外的@ 8。由于您无法使用dumpbin.exe找到这些文件,因此您希望将其发回,这对您没有任何用处。 –