2009-06-24 90 views
0

我有一些源代碼,我想與VS2008編譯,但有很多錯誤,我必須解決。 現在還有像一些枚舉:如何忽略定義(VS2008)

enum 
{ 
BACKGROUND = 0x00000001, 
WEAPON  = 0x00000002, 
TRANSPARENT = 0x00000004 
} 

的問題是,透明的定義是:在

WINGDI.H
#define TRANSPARENT   1 

這將導致像編譯錯誤:

error C2143: syntax error : missing '}' before 'constant' 

是否有可能修復該錯誤而不重命名e中的字段NUM不除去WINGDI.H從包括(我不知道它的包含..)

回答

2

您可以使用

#undef TRANSPARENT 

但可能在其他地方會導致錯誤,如果WinGDI透明是繼使用。 A(亂)解決方法可以是:

#ifdef _TRANSPARENT 
#define TRANSPARENT _TRANSPARENT 
#endif 

#ifdef TRANSPARENT 
#define _TRANSPARENT TRANSPARENT 
#undef TRANSPARENT 
#endif 

和你的代碼後,

2

如果你不使用從WINGDI.H透明值,你可以簡單地添加:

#undef TRANSPARENT

enum之前(這只是一種解決方法,更好地重命名枚舉中的TRANSPARENT)。