Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我正在尝试使用具有H和OBJ文件的SDK。 H文件将所有函数声明为extern“ C”,但是在链接时,我得到“无法解析外部符号_ibclr @ 4”。该函数称为ibclr并采用4B参数,因此看起来这只是C ++装饰。但是extern“ C”怎么不起作用?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我正在尝试使用具有H和OBJ文件的SDK。 H文件将所有函数声明为extern“ C”,但是在链接时,我得到“无法解析外部符号_ibclr @ 4”。该函数称为ibclr并采用4B参数,因此看起来这只是C ++装饰。但是extern“ C”怎么不起作用?
最佳答案
_ibclr@4
看起来像__stdcall
修饰,而不是C ++修饰。
确保在声明中指定正确的调用约定。如果库作者未指定,请尝试__cdecl
。如果您使用的是Visual C ++,则它具有用于默认调用约定的编译器选项,并且该选项的默认值为__cdecl
。
关于c++ - Visual Studio 2015:尽管有外部“C”,但仍采用C++装饰,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31809340/
10-09 22:14