そのため、何らかの理由で、.cppファイルにヘッダーファイルがありません。ただし、ヘッダーファイルは他の場所には含めません。始めたばかりなので、作成したすべてのファイルをチェックしました
#ifndef _ENGINE_
#define _ENGINE_
class Enginuity
{
public:
void InitWindow();
};
#include "Enginuity.h"
void Enginuity::InitWindow()
{
}
#include "stdafx.h"
#include "GameProject1.h"
#define MAX_LOADSTRING 100
// Global Variables:
HINSTANCE hInst; // current instance
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name
// Forward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
code.....
#endif
何が起こっているのか分からない。私が得るエラーは
1>c:\users\numerical25\desktop\intro todirectx\gameproject\gameproject1\gameproject1\enginuity.cpp(1) : warning C4627: '#include "Enginuity.h"': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\users\numerical25\desktop\intro todirectx\gameproject\gameproject1\gameproject1\enginuity.cpp(8) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
エラーメッセージを読みましたか?
致命的なエラーC1010:プリコンパイル済みヘッダーの検索中に予期しないファイルの終わり。ソースに「#include "stdafx.h"」を追加するのを忘れましたか?
Enginuity.cppに#include "stdafx.h"
がありません。 ;)プリコンパイル済みヘッダーを使用している場合は、プリコンパイル済みヘッダーをevery source(.cpp)ファイルに含める必要があります。
Stdafx.hがある上位の親フォルダにあるcppファイルにstdafx.hを含めると、このエラーが発生しました。
#include "subfolder\stdafx.h"
コンパイルエラーが発生します。それを次のように変更します。
#include "stdafx.h"
コンパイルエラーを修正しますが、インテリセンスはおかしくなります。
Microsoftの誰かによると、IntelliSenseの「修正」 here は、Project-> Properties- >設定プロパティ-> C/C++->全般->追加のインクルードディレクトリ。
これがVisual Studio 2012で動作することを確認しました。2010でも動作するはずです。
あなたはどちらかの行を入れたいでしょう
#include "stdafx.h"
すべての.cppファイルの先頭(この場合、enenuity.cppだけが欠落しています。
または、プロジェクトのプリコンパイル済みヘッダーを無効にします。
プロジェクトでプリコンパイル済みヘッダーが有効になっている場合、Visual C++はすべてのソースファイルの上部でその#include
ディレクティブを探します。そこにない場合は、受け取った否定的なコメントが表示されます。
承認されたソリューションがうまくいかない場合:
私の場合、stdafx.hインクルードは.cppファイルの他のインクルードの後にありました。
.cppファイルの先頭に#include "stdafx.h"ステートメントを設定すると、エラーが修正されました。
1つのファイルのプリコンパイル済みヘッダーを無効にすることができます(VS2010)。煩わしさの原因となっている.ccファイルまたは.cppファイル、右マウスメニュー、プロパティ、プリコンパイル済みヘッダー、プリコンパイル済みヘッダー(に変更)、プリコンパイル済みヘッダーを使用しないを選択します。
ヘッダーファイルenginuity.h
に#endif
がないか、投稿に誤りがありますか?
#include "stdafx.h"を各.cppファイルに追加する代わりに、強制インクルードファイル機能を使用できます。機能はここに文書化されています: https://msdn.Microsoft.com/en-us/library/8c5ztk84.aspx 。
私の場合、別のプロジェクトの既存の.cppファイルを新しいプロジェクトにコンパイルしようとしていました。元のプロジェクトではプリコンパイル済みヘッダーが有効になっていて、同じファイルを正常にコンパイルしているため、各ファイルを変更する必要がないことはわかっていました。このオプションが元のプロジェクトで構成されていることを発見しました。新しいプロジェクトで同じ構成を行った後、エラーはなくなりました。
Viktorが上記のようにstdafx.h afterを含むと、他のインクルードもこのエラーを引き起こし、関数の追加ウィザードを使用すると非常に簡単に発生する可能性があります。私の場合、ウィザードは#includeをcppファイルのtropに追加しました(既に含まれているにもかかわらず)ので、(この例を使用して)
#include "Enginuity.h"
#include "stdafx.h"
// ... other includes ...
#include "Enginuity.h"
このエラーは、プロジェクトのサブディレクトリに2つのソリューションがあり、プリコンパイル済みヘッダーが有効になっている場合に発生します。同じ問題が発生しましたが、Microsoftはまだ修正していません。
https://connect.Microsoft.com/VisualStudio/feedback/details/552449/
マイクロソフトの回避策は時々機能します。
#include "stdafx.h"をenginuity.cppの先頭に追加するか、プロジェクトのプリコンパイル済みヘッダーを無効にします。