我试图在eclipse / mingw-gcc中编译一个真正的win32应用程序,直到现在都没有成功(参见https://stackoverflow.com/questions/9162976/how-to-compile-a-win32-application-in-eclipse-using-the-mingw-gcc-toolchain)
无论如何,在排除另一个错误时,文件 c:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Include \ WTypes.h 中的以下行已经抓住了我的好奇心:
#define _VARIANT_BOOL /##/
在{{1>}来自 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Include \ OAIdl.h 中使用
struct tagVARIANT
扩展为:
VARIANT_BOOL boolVal;
_VARIANT_BOOL bool;
SCODE scode;
因为VARIANT_BOOL boolVal;
SCODE scode;
已扩展为/##/
,因此开始发表评论!我不相信它符合标准,并且确实尝试在mingw-gcc中编译失败:
//
所以,我正在寻找有关如何解决这个问题的建议。
答案 0 :(得分:0)
你需要弄清楚宏在什么条件下有问题定义,并且在这种情况下取消它。如果没有办法告诉,那就无条件地取消它,并希望没关系。 :(
#include <problem-header.h>
#if whatever condition makes sense
#undef _VARIANT_BOOL
#endif
.....
#ifdef _VARIANT_BOOL
_VARIANT_BOOL bool;
#endif