未解析的符号针对VC6 DLL链接时/ lib中(unresolved symbols when l

2019-10-19 02:38发布

我用vs2012创建一个小包装DLL,链接到的另一个DLL(.LIB),用VC6建。

我得到的链接错误,如:

error LNK2019: unresolved external symbol __imp__functionName@8

我添加了VC6的dll到链接线提供的库文件,正如我在过去所做的那样......有一些版本问题就在这里? 在VC6 DLL头文件中声明,我认为标准是什么方式的功能:

#define DLLIMPORT extern "C" __declspec(dllimport)
DLLIMPORT ULONG WINAPI functionName(...);

使用DUMPBIN /在VC6库文件出口显示“functionName”没有小鬼前缀和“@ 8” ..不知道如果这是一个问题,或者只是DUMPBIN是好的,demangling我。

我不是一个窗户的人,不知道为什么链接没有找到符号...帮助!

Answer 1:

解决了! 有两个问题:

1)DUMPBIN /出口不显示所有的符号。 使用/所有代替示出的形式__imp_functionName @ 8的码元。

2)链接器在寻找形式的符号__imp____imp_由VC6 LIB提供。 谷歌告诉我,这是32位和64位之间的差异版本,所以在VC6库是一个64位的构建,而我的是32。

改变我的包装的dll到64位解决了这个问题!

这是一个半天也呆了! 也许。 可能不是。 这就像这些时候,我喜欢做一个程序员!



文章来源: unresolved symbols when linking against vc6 dll/lib