Я создаю основную 2D-игру. Мой код прекрасно работает в Visual Studio 2010. Однако, когда я создаю .exe и запускаю его, я получаю сообщение «Ошибка отладки, R6010, Abort был вызван».
Начав с нуля и добавив кусочки кода, пока я не найду ошибку, я сузил проблему до кода ниже. Я включил всю функцию, но могу предоставить больше кода при необходимости.
Ответы на вопросы других людей показывают, что проблема связана с тем, что ошибка не обнаруживается (я экспериментировал с операторами try / catch безрезультатно). Однако я не могу видеть, где, как код работает без них в режиме отладки.
Если у кого-то есть какие-либо предложения, я был бы очень признателен.
void initGUI()
{
//Button Types correspond to which section of the screen the button will be displayed in.
//type 1 = Top Bar,
//type 2 = Main Body,
//type 3 = Overlay window (gui1 only)
bool endFile = false;
string totalGUIString;
string text;
vector<string> stringVector;
//Open the file
cout << "Opening file buttons.txt" << endl;
fstream textFile;
textFile.open("buttons.txt");
//Read the first line and determine the amount of GUI's that need to be created
textFile >> totalGUIString;
int totalGUIs = convertStringToInt(totalGUIString);
cout << "Total number of GUI's to load = " << totalGUIs << endl;
//Create the correct amount of GUI's
for(int j = 0; j < totalGUIs; j++)
{
guiMatrix.push_back(gui(j));
}
textFile >> text;
while(endFile == false) //Search through the main body of the file
{
//textFile >> text;
if(text == "END")
{
endFile = true;
cout << "Reached the end of the file" << endl;
}
else
{
stringVector.push_back(text);
//cout << "PushBack:" << text << endl;
if(text == "E")
{
//Use vector to populate the button constructor
int button0 = convertStringToInt(stringVector[0]);
int button1 = convertStringToInt(stringVector[1]);
string button2 = stringVector[2];
int button3 = convertStringToInt(stringVector[3]);
//cout << "TESTING:: " << button0 << " " << button1 << " " << button2 << " " << button3 << endl;
guiMatrix[button0].addButton(button1, button2, button3);
stringVector.clear();
}
textFile >> text;
}
}
textFile.close();
//For every guiMatrix print the button list to cout.
for(int a = 0; a < totalGUIs; a++)
{
guiMatrix[a].printButtonMatrix();
}
}
Вводимый текстовый файл выглядит следующим образом:
Число вверху определяет, сколько страниц GUI я хочу создать.
Формат каждой записи следующий: номер страницы, указатель местоположения, имя, продолжительность действия, конец
5
0 2 Explore 0 E
0 2 Technologies 0 E
0 2 Buildings 0 E
0 2 Workers 0 E
0 1 Scoop_Water 10 E
0 1 Collect_Water 10 E
0 1 Forage 10 E
0 1 Gather_Twigs 10 E
0 1 Fell_Trees 10 E
1 2 Enter 0 E
1 1 Build_Road 1 E
2 2 Explore 0 E
2 2 Main 0 E
2 2 Buildings 0 E
2 2 Workers 0 E
2 1 Backpack 0 E
2 1 Hand_Cart 0 E
3 2 Explore 0 E
3 2 Main 0 E
3 2 Technologies 0 E
3 2 Workers
3 1 Build_Hut 0 E
4 2 Explore 0 E
4 2 Main 0 E
4 2 Technologies 0 E
4 2 Buildings 0 EEND
Ошибки были выброшены, когда .png
файлы не могут быть найдены .exe.
Не было положения о том, что следует делать, если эти файлы не были найдены.
Решено перемещением соответствующих .png
файлы в ту же папку, что и исполняемый файл.
Других решений пока нет …