прекращение вызова после выброса экземпляра __gnu_cxx :: __ concurrence_lock_error - PullRequest
0 голосов
/ 07 февраля 2019

В настоящее время я пытаюсь загрузить текстуры из файлов в моем классе Render и получаю эту ошибку.

прекращение вызова после выброса экземпляра '__gnu_cxx :: __ concurrence_lock_error'

what (): __gnu_cxx :: __ concurrence_lock_error

Это приложение запросило среду выполнения, чтобы завершить ее необычным способом.Для получения дополнительной информации обратитесь в службу поддержки приложения.

Я использую Code :: Blocks с SFML и убедился, что папка моего проекта не доступна только для чтения

main.cpp

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#include <time.h>
#include <fstream>
#include <math.h>
#include <windows.h>
#include "dim.h"
#include "render.h"

using namespace std;

sf::RenderWindow window;

int main()
{
    cout << "main" << endl;
    srand(time(NULL));
    Dim world1(64, 64);
    for(int y = world1.y - 1 ; y > 0; y = y - 1)
    {
        for(int x = 0; x < world1.x; x++)
        {
            cout << world1.grid.at(y).at(x);
        }
        cout << "\n";
    }
    cout << "done"<< endl;

    Render render;
    render.loadTextures();
    for(int i = 0; i < render.fileList.size(); i++)
    {
        cout << render.fileList[i] << ", ";
    }
    return 0;
}

render.h

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#include <time.h>
#include <fstream>
#include <math.h>
#include <windows.h>

using namespace std;

#ifndef RENDER_H_INCLUDED
#define RENDER_H_INCLUDED
class Render
{
public:
    vector<string> fileList; //List of file names
    vector<sf::Texture> textures; //List of textures
    void loadTextures(); //Function to load file names from .txt
    void createWindow(int, int, sf::RenderWindow); //Function to create window
    void setWorld(); //Function to assign sprites' initial positions and textures
};




#endif // RENDER_H_INCLUDED

render.cpp

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#include <time.h>
#include <fstream>
#include <math.h>
#include <windows.h>
#include "render.h"

using namespace std;

void Render::loadTextures()
{
    cout << "loading textures" << endl;
    string line;
    ifstream myfile ("texturelist.txt");
    if (myfile.is_open())
    {
        cout << "texture list file opened" << endl;
        while ( getline (myfile,line) )
        {
            cout << "reading line" << endl;
            Render::fileList.push_back(line);
            cout << "saved line" << endl;
        }
    }
    myfile.close();
    cout << "texture names loaded." << endl;
    Render::textures.resize(Render::fileList.size());
    for(int i = 0; i < Render::fileList.size(); i++)
    {
        if(!Render::textures[i].loadFromFile(Render::fileList[i]))
        {
            cout << "error" << endl;
        }
    }
    cout << "textures created" << endl;
}

void createWindow(int width, int height, sf::RenderWindow window)
{
    window.create(sf::VideoMode(width, height), "Game");
    cout << "Window created" << endl;
}

полный вывод:

основной мир создания

генерирующий слой

разбивается: 16

генерируется

генерирующий слой

разбивает: 16

генерирует

генерирует слой

разбивает: 8

генерирует

создает мир

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

1062 * 0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000001000000000000000000000001000000000000000

1000000000000000000011111110000000000000000011111110000000000000

1111100000000000111111111111110000000000111111111111110000000000

1111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111

1111111111111111111111111111111111111111111111111111111111111111

2111111111111111111111112111111111111111111111111111111111111112

2211111111111111111122222211111111111111111111112111111111111122

2221111111112111111122222221111121111111111122222222211111111222

2222111111122211111222222222222221111111111222222222222111112222

2222211111222221112222222222222222111111112222222222222222222222

2222222112222222122222222222222222211111222222222222222222222222

2222222222222222222222222222222222221122222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222222222222222222222222222222222222222222222222222222222222

2222222232222222222222222222222222222222222222222222322222222222

2222222233222222322222222222222222222222222222222222333222223333

2222222333322233332222222222222222222222222222222223333333333333

2222222333333333333222222222322222222222222232222223333333333333

2222223333333333333322223333332222222222222232222233333333333333

2222223333333333333333333333333222222222222333222233333333333333

3222233333333333333333333333333333333222223333322333333333333333

3333333333333333333333333333333333333332233333332333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

1162 * 3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

3333333333333333333333333333333333333333333333333333333333333333

сделано

1180 * Загрузка текстур
1182 * список текстур файл открыт
1184 * линия чтения
1186* сохраненная строка

строка чтения

сохраненная строка

строка чтения

сохраненная строка

загружены имена текстур.

завершение вызова после выброса экземпляра

'__ gnu_cxx :: __ concurrence_lock_error'

what (): __gnu_cxx :: __ concurrence_lock_error

Это приложение запросило среду выполнения для его завершения внеобычный способ.

Для получения дополнительной информации обратитесь в службу поддержки приложения.

Процесс вернул 3 (0x3) время выполнения: 3,276 с

Нажмите любую клавишу для продолжения.

...