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”怎么不起作用?

最佳答案

_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