嗨工作它已經幾個星期進出口深化發展遊戲的比賽。 (我很熟悉編碼,但不是很多)。C++遊戲exe文件停止工作,很多課。在Visual C++
我正在寫在Visual C++遊戲。當我在視覺c釋放模式下運行它++,它運行正常,但是當我從.exe嘗試,會彈出一個窗口,並說:「*的* .exe已停止工作」。我知道錯誤是什麼,但我不知道如何解決。彈出的錯誤是因爲有很多矢量,如果我刪除了一些從遊戲運行的程序調整大小的矢量,它可以是任意的,牆壁,矢量,沒關係。但是我覺得這很奇怪,因爲當我在任務管理器中查找時,遊戲僅佔用2萬個內存。
所以在最後,如果我從遊戲中刪除一些載體,遊戲的EXE運行,如果沒有,那就只能在Visual C++運行。我該怎麼辦?我真的迷失了。
////////////////////////////////////////////// ////////////////////////////////////
確定,如果我調整隻有四個向量列表中, .exe會運行,但如果我調整大於4,exe文件會給出錯誤,但Visual C++實例仍在運行。
class Level
{
public:
int LevelWidth;
MapElements::Background Background;
//OBJETS SUR MAP
Array<MapElements::Ground> Grounds;
Array<MapElements::Wall> Walls;
Array<MapElements::Platform> Platforms;
Array<MapElements::Box> Boxs;
//ENNEMIS et JOUEUR
Array<Gameplay::Droite> Droites;
Array<Gameplay::Cercle> Cercles;
Gameplay::Player Player;
};
這個工程:
void Level::InitializeMap(int MaxGround, int MaxWall, int MaxPlatforms, int MaxBox)
{
Grounds.Element.resize(MaxGround);
Walls.Element.resize(MaxWall);
Platforms.Element.resize(MaxPlatforms);
Boxs.Element.resize(MaxBox);
}
這並不:
void Level::InitializeMap(int MaxGround, int MaxWall, int MaxPlatforms, int MaxBox, int MaxCercles)
{
Grounds.Element.resize(MaxGround);
Walls.Element.resize(MaxWall);
Platforms.Element.resize(MaxPlatforms);
Boxs.Element.resize(MaxBox);
Cercles.Element.resize(MaxCercles);
}
Array類:
template <typename T> class Array
{
public:
std::vector<T> Element;
Array();
};
template <typename T> Array<T>::Array()
{
}
調整尺寸作品,如果我只有4載體。 resize(),它可以是任何變量(牆,框等),w帽子是錯誤的來源?
你是如何編譯exe文件的? 16位模式?除非你以有限的方式建造,否則對班級數量沒有限制。 – stark 2012-07-28 02:14:34
我的猜測是在運行時需要一個文件,這個文件在運行時可以在Visual Studio中運行,但在運行exe時不會運行。遊戲在可執行文件所在的目錄中是否需要所有資源? – ctor 2012-07-28 02:15:31
哇爲什麼倒票?不,沒有任何丟失的文件,我知道對類沒有限制,但我會看看編譯。 – user1236892 2012-07-28 17:48:40