2009-06-24 21 views
0

VS2008でコンパイルしたいソースコードがいくつかありますが、修正する必要のあるエラーが多数あります。定義を無視する方法(VS2008)

:のようなコンパイルエラーが発生しますWINGDI.H

#define TRANSPARENT   1 

: 今のようないくつか列挙型があります。

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

は問題がTRANSPARENTは次のように定義されていることです

電子メールのフィールドの名前を変更せずにこのエラーを修正することは可能ですかnumとあなたがWINGDI.HからTRANSPARENT値を使用していない場合は(それが含まれていますどこ私は知らない。)が含ま

答えて

2

あなたは

#undef TRANSPARENT 

を使用することができますが、TRANSPARENT WinGDIがその後使用されている場合には、他の場所でエラーが発生することがあります。 (汚い)この問題を回避するには、次のようになります。

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

とあなたのコードの後:

#ifdef _TRANSPARENT 
#define TRANSPARENT _TRANSPARENT 
#endif 
2

からWINGDI.Hを削除せずに、あなたは、単に追加することができます。

#undef TRANSPARENT

(前回の回避策にすぎないが、列挙型のTRANSPARENTの名前を変更する方がよい)

関連する問題