链接到vc6 dll / lib时未解析的符号

时间:2013-12-14 16:17:07

标签: c++ visual-studio visual-c++ dll vc6

我正在使用vs2012创建一个小的包装器dll,链接到另一个用VC6构建的dll(.lib)。

我收到链接错误,如:

error LNK2019: unresolved external symbol __imp__functionName@8

我将vc6 dll提供的lib文件添加到链接行,正如我过去所做的那样...这里有一些版本问题吗? vc6 dll头文件以我认为的标准方式声明函数:

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

在vc6 lib文件中使用dumpbin / exports显示没有 imp 前缀和“@ 8”的“functionName”..不确定这是否是一个问题,或者只是dumpbin对我来说很好和消解。

我不是一个Windows用户,也不知道为什么链接器没有找到符号......帮助!

1 个答案:

答案 0 :(得分:4)

解决!有两个问题:

1)dumpbin / exports不显示所有符号。使用/ all显示__imp_functionName @ 8形式的符号。

2)链接器正在寻找vc6 lib提供的__imp__而不是__imp_形式的符号。谷歌告诉我,这是32位和64位版本之间的区别,所以vc6库是64位构建,而我的是32。

将我的包装器dll更改为64位解决了这个问题!

这花了半天时间!也许。可能不是。当我喜欢成为一名程序员时,就像这样!