我有一个大型游戏引擎要编译,它运行良好,直到我做了一些疯狂的调整。编译器不知何故无法重新调整我的平均 Game 对象并产生error C2061: syntax error : identifier 'Game'
,而且似乎无论我编译什么文件,错误总是指向一个名为的文件,GameDataLoader.h
即使这两个文件绝对没有联系。通常我认为这是一个包含问题,但事实是我已经Game.h
包含在每个必要的 .h 文件中,就在包含 stdafx.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 行中出现了错误。可能是什么问题?双重包容?循环包容?还是不包括某些东西和其他地方?