11

一般的なエラーがありますfatal error C1083: Cannot open include file: 'afxres.h': No such file or directory。検索エンジンはこれに対して多くのヒットを表示しますが、提案された解決策はどれも私にとってはうまくいきません.

通常、これはパスに問題があるように見えます。そのため、関連するライブラリがインストールされていることを確認し、ファイルを見つけました。#include として絶対パスを使用すると問題なく動作します。

#include "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\afxres.h"

しかし、ディレクトリ (C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include) をプロジェクト設定 (または Microsoft.Cpp.Win32.User プロパティ シート) に追加して、この行を試してみると、 :

#include "afxres.h"

エラー C1083 が再び表示されます。それでも、Visual Studio は明らかにファイルを見つけることができます。ファイル名を右クリックして [Open Document 'afxres.h'] を選択すると、すぐにファイルが開きます。

Visual Studio が指定した #include パスを無視するのはなぜですか? 同様の方法で含めた他の #include パスは完全に機能します。

ディレクトリはビルド設定に明示的に含まれています

4

2 に答える 2

4

以前はここに Visual C++ 2010 Express がありましたが、そこからいくつかの設定がインポートされたようです

肝心のコメントでした。Express は ATL と MFC をサポートしていません。まだ欠けているのは、以前に VS2010 で開始したプロジェクトでのみこの問題が発生したことです。

プロジェクト プロパティ シートで行ったようにパスを追加する必要がないことに注意してください。スクリーン ショットで確認できますが$(VCInstallDir)atlmfc\include、継承されたプロパティのエントリで既にカバーされています。したがって、$(VCInstallDir) マクロの値が間違っているという結論になります。

これは、インストールの失敗やレジストリの破損のほかに、以前に VS2010 で開始したプロジェクトを変換したときに発生する可能性があります。プロパティ マネージャーからソリューション エクスプローラー ウィンドウに戻り、プロジェクトを右クリックし、[プロパティ]、[全般] ページを開きます。「プラットフォーム ツールセット」の設定を v100 から v110 に変更します。VS2010 Express の代わりに VS2012 インクルード ディレクトリを使用します。

Microsoft.Cpp.Win32.User プロジェクト プロパティ シートを変更すると、すべてのプロジェクトに影響することに注意してください。リセットする必要があります。

于 2013-07-05T00:04:00.480 に答える