• ベストアンサー

VC++2010 EE で #ifdef _MSC_VER #endi

VC++2010 EE で #ifdef _MSC_VER #endif でエラー ソース始まり // _msc_ver.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #ifdef _MSC_VER #include "stdafx.h" #endif int _tmain(int argc, _TCHAR* argv[]) { return 0; } ソース終わり > fatal error C1020: 予期しない #endif です。 と出ます。なぜでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

#include "stdafx.h"より前のプロプロセッサ命令は無視されます #include "stdafx.h" #define AAA 10 int main(void) { printf("%d", AAA); return 0; } はOKですが #define AAA 10 #include "stdafx.h" int main(void) { printf("%d", AAA); return 0; } にすると warning C4603: 'AAA': マクロが定義されていないか、プリコンパイル済みヘッダーが使用している定義とは異なります ここで定義するのではなくプリコンパイル済みヘッダーにマクロを追加します のように警告が出ます #ifdef _MSC_VER #include "stdafx.h" #endif だと#ifdefがなかったことにされるためエラーになります

atassyu
質問者

お礼

回答ありがとうございました。 #IFDEF _MSC_VER と #ENDIF は削除して #include "stdafx.h" // VC++ 以外は、この行をコメントにする。 と注釈をつけることにします。

その他の回答 (1)

回答No.1

stdafx.h がプリコンパイル・ヘッダに指定されているからでしょうね。

atassyu
質問者

お礼

回答ありがとうございました。