如何在Visual C++ Express 2008上禁用interface关键字?

bcs*_*hes 6 c visual-studio-2008

我在这里编译遗留的C代码,有很多变量和结构成员名为"interface",但VC2008 express抱怨这些,你知道如何禁用它吗?

我已经更改了设置,只能将代码编译为C代码,但对此没有影响.

小智 5

问题是MS #defines接口到struct这样

interface Name {...}
Run Code Online (Sandbox Code Playgroud)

可以在COM c ++代码中使用.(OBJBASE.H:199: #define interface __STRUCT__)

只是#undef interface包括WINDOWS.H以后.


wim*_*ica 4

做一个

#define interface QQInterface
Run Code Online (Sandbox Code Playgroud)

在你的代码之前(例如在头文件中),这样在任何使用关键字interface的地方,编译器都会看到“QQInterface”,它不是一个关键字。如果所有代码都包含此定义,您将不会收到编译器或链接器错误。