5

私は#defineのすべてのインクルードファイルを持つAPIを使っています。私はVisual C++ 2010 Expressで開発していますが、これまではうまくいきました。Visual C++ Express 2010は突然#includeを受け付けません

私はプロジェクトに新しいcppファイルを追加していましたが、誤って代わりに "Windowsフォーム"を追加しました。 VCは私のプロジェクトが現時点でCLRを使用していないと私に警告しました。本当にしたいですか?私はいいえをクリックし、意図したとおりにファイルを追加しました。その後、私のプロジェクトはコンパイルされなくなりました。

api_header.h

#define DEFINED_HEADER_NAME "path/to/header/file.h" 

stdhpf.h:私が言ったように、長い間うまく働い

#include DEFINED_HEADER_NAME 

は、コードは次のように基本的に見えます時間。今、私はこれを取得:

エラーC2006:'#include':ファイル名を期待し、'identifier'
致命的なエラーC1083が見つかりました:これを引き起こしている何そのようなファイルやディレクトリ

番号:'':オープンファイルを含めることはできません?私はそれがプリコンパイルされたヘッダーを有効にしていたためだと言ったポストを見つけましたが、私はProject properties > Configuration properties > C/C++/Precompiled headersをチェックしました、そして、それはオフです(私はVSに新しいので設定パスについて言及します。 )。

アイデア?

答えて

7

問題は、間違いなくWindowsフォームオブジェクトを追加することとは関係なく、2つのステートメントが前処理されている順序にある​​ことになります。

This knowledge base articleが示唆:

問題は#includeディレクティブでインクルードファイルを指定するために定義された定数を使用することにあります。マクロが完全に展開される前にディレクティブが処理されているため、エラーが発生します。

2番目のエラーは、プリプロセッサは、空の名前のインクルードファイルを探していることを示して、これを確認しているようだ:

fatal error C1083: Cannot open include file: '': No such file or directory 
0

あなたのインクルードファイルの順番が変更されています。 Visual Studioで#include "api_header.h"より先に#include "stdhpf.h"が挿入されている可能性があります。

0

プリコンパイル済みヘッダーを無効にします。それは助けになるはずです。

関連する問題