2009年7月7日火曜日

warning C4005: '_WIN32_WINNT' : マクロが再定義されました。

IP Messanger を いじくろうと思い、Microsoft Visual C++ 2008 Express Edition でコンパイルしたら
わんさかエラーが出たので、その備忘録。
エラー【その5】!!!

マクロ識別子が 2 回定義されているのが原因。
コンパイラが 2 つ目のマクロ定義を使用しているので、意図したものでなければ危険だよと。

例えば、マクロをコマンド ラインとコード内の #define ディレクティブの両方で定義してたり、
マクロがインクルード ファイルからインポートされていたりすると出るらしいので、

いずれかの定義を削除するか、2 つ目の定義の前に #undef ディレクティブを使用するって事で
回避するべきらしい。

以下のような時に出る「C4005」エラー
// C4005.cpp
// compile with: /W1 /EHsc
#include 
using namespace std;

#define TEST "test1"
#define TEST "test2"   // C4005 delete or rename to resolve the warning

int main() {
   cout << TEST << endl;
}
免責 この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。 子育てブログ「おとう日記」はじめました。 興味ある方、是非ご覧下さい! おとう日記 コピペプログラマの倉庫を作りました。 サンプルプログラムなど置いておきますのでお立ち寄り下さい。 コピペプログラマ倉庫 良ければ↓投票お願いします↓ m(._.)m ペコッ 人気ブログランキングへ

0 件のコメント:

コメントを投稿