Visual Studio 2015:尽管有外部"C",但仍C++装饰

Visual Studio 2015: C++ decorations despite extern "C"

本文关键字:但仍 装饰 C++ 外部 2015 Studio Visual      更新时间:2023-10-16

我试图使用一个SDK,我有一个H和OBJ文件。H文件将所有函数声明为外部"C",但在链接时,我得到"无法解析外部符号_ibclr@4"。该函数名为ibclr,并接受一个4b参数,因此它看起来只是c++的装饰。但是外部C怎么不起作用呢?

_ibclr@4看起来像__stdcall的mangling,而不是c++的mangling。

确保在声明中指定正确的调用约定。如果库作者没有指定它,请尝试__cdecl。如果你正在使用Visual c++,它有一个编译器选项用于默认的调用约定,这个选项的默认值是__cdecl