C++ SFML视频模式中断应用程序

C++ SFML视频模式中断应用程序,c++,sfml,C++,Sfml,使用SFML sf::VideoMode会破坏我的应用程序,说“Singularity.exe已停止工作” 具体而言,这一行: _mainWindow.create(sf::VideoMode(1024,768,32), "Singularity"); 这条线就是导致问题的原因。当我删除它时,应用程序工作正常。以下是主类文件的全部代码: #include "stdafx.h" #include "Game.h" void Game::Start(void) { if (_ga

使用SFML sf::VideoMode会破坏我的应用程序,说“Singularity.exe已停止工作”

具体而言,这一行:

    _mainWindow.create(sf::VideoMode(1024,768,32), "Singularity");
这条线就是导致问题的原因。当我删除它时,应用程序工作正常。以下是主类文件的全部代码:

#include "stdafx.h"
#include "Game.h"

void Game::Start(void)
{
    if (_gameState != Uninitialized)
        return;

    _mainWindow.create(sf::VideoMode(1024,768,32), "Singularity");
    _gameState = Game::Playing;

    while (!IsExiting())
    {
        GameLoop();
    }

    _mainWindow.close();
}

bool Game::IsExiting()
{
    if (_gameState == Game::Exiting)
        return true;
    else
        return false;
}

void Game::GameLoop()
{
    sf::Event currentEvent;
    while (_mainWindow.pollEvent(currentEvent))
    {

        switch (_gameState)
        {
        case Game::Playing:
        {
            _mainWindow.clear(sf::Color(255, 0, 0));
            _mainWindow.display();

            if (currentEvent.type == sf::Event::Closed)
            {
                _gameState = Game::Exiting;
            }
            break;
        }
        }
    }
}


Game::GameState Game::_gameState = Uninitialized;
sf::RenderWindow Game::_mainWindow;
有没有人知道是什么原因造成的,或者如何修复?我对SFML完全陌生,所以我不知道该做什么。
谢谢,Zuve

制作一个最小的可编译示例来显示错误。如果您省略了一行,那么应用程序就可以工作,但这并不意味着该行就是问题所在。调试器如何说明崩溃的位置和原因?在我看来,最好使用
main
(或其他init函数)中的构造函数创建一个
sf::RenderWindow
的本地实例,并将指针传递给其他需要它的函数,如
Game::GameLoop
。另外,试着在没有第三个参数的情况下运行
sf::VideoMode
,只保留分辨率,看看这是否有帮助。