コンパイルする大きなゲームエンジンがあり、クレイジーな調整を行うまでは問題なく動作しました。コンパイラはどういうわけか私の平均的なゲームオブジェクトを再構成して生成することができず、error C2061: syntax error : identifier 'Game'
どのファイルをコンパイルしてGameDataLoader.h
も、この2つのファイルとの接続がまったくない場合でも、エラーは常に呼び出されたファイルを指しているようです。通常、これは包含の問題だと思いますが、実際にはGame.h
、stdafx.hを含めた直後に、必要なすべての.hファイルに含めており、その#pragama once
上にあります。循環包含問題について考えましたが、#pragma once
その世話をする必要があります。さらに、この包含ディレクティブは、ファイル名やその他の厄介なものを変更するまでは正常に機能します。ソリューション全体をクリーンアップして再構築しようとしましたが、それでもうまくいきませんでした(VS2012を使用)。コードを表示することが役立つかどうかはわかりませんが、ここにのコードがありますgameDataLoader.h
。これは私が書いたファイルではありませんが、正しく動作するはずです。
#pragma once
#include "stdafx.h"
#include "Game\Game.h" // Game.h included
class GameDataLoader
{
public:
GameDataLoader(){}
~GameDataLoader(){}
void GameDataLoader::loadGameProperties( Game *game, map<wstring, wstring> *properties, wstring gameInitFile);
virtual void loadGame(Game *game, wstring gameInitFile) = 0;
virtual void loadGUI(Game *game, wstring guiInitFile) = 0;
virtual void loadWorld(Game *game, wstring levelInitFile) = 0;
};
そして、Gameオブジェクトの4行で正確にエラーが発生しました。何が問題になる可能性がありますか?ダブルインクルージョン?循環包含?または何かとどこかに含まれていませんでしたか?