链接器函数定义代表什么?

时间:2009-11-11 12:45:19

标签: visual-studio linker

升级SDK时出现链接器错误。

在.lib文件中查看旧函数定义:

?SetupMOSSDK@@YAEPBGKPBUMOSGUID@@K@Z

然而,新的.lib文件对同一函数的定义略有不同:

?SetupMOSSDK@@YAEPB_WKPBUMOSGUID@@K@Z

更改是_W而不是G。

我不知道这个字符串实际代表什么。我假设编译器在字符串中指示其编译时配置。我是对的吗?

3 个答案:

答案 0 :(得分:2)

尝试在vc \ bin目录中使用undname.exe。 它对你的字符串不起作用,但也许你正在使用不同版本的visual studio - 我正在使用2008。

答案 1 :(得分:0)

可能有一种方法可以找出.lib定义中更改的参数。但是,您将不得不重新编译代码以更改您传递的内容,因此最好的方法是查看源代码中的标题或接口定义并更改源代码以匹配它

答案 2 :(得分:0)

编译器指示函数的参数和返回类型。因此,lib文件中的函数与您正在使用的.h文件中的函数定义具有不同的参数集。