C++ 使用Clear函数的SFML崩溃

C++ 使用Clear函数的SFML崩溃,c++,crash,sfml,C++,Crash,Sfml,我是SFML新手,目前正在阅读文档。然而,出于某种原因,每当我调用Clear()函数时,我的“程序”就会崩溃。我的程序代码如下: #include <SFML/Window.hpp> #include <SFML/Graphics.hpp> #include <cstdlib> #include <iostream> void HandleEvents(sf::RenderWindow &App) { sf::Event Even

我是SFML新手,目前正在阅读文档。然而,出于某种原因,每当我调用Clear()函数时,我的“程序”就会崩溃。我的程序代码如下:

#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>

void HandleEvents(sf::RenderWindow &App)
{
    sf::Event Event;
    while (App.GetEvent(Event)) {
        if (Event.Type == sf::Event::Closed) {
            App.Close();
            exit(0);
        }
        if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape)) {
            App.Close();
            exit(0);
        }
    }
}

int main()
{
    sf::RenderWindow App(sf::VideoMode(800, 640, 32), "SFML Graphics");
    App.SetFramerateLimit(60);      // cap the framerate at 60 FPS
    while (App.IsOpened()) {
        HandleEvents(App);      // handle events... duh
        App.Clear();      // When I remove this line, the program doesn't crash....
        App.Display();
    }
    return EXIT_SUCCESS;
}
#包括
#包括
#包括
#包括
void HandleEvents(sf::RenderWindow和App)
{
sf::事件;
while(App.GetEvent(Event)){
如果(Event.Type==sf::Event::Closed){
App.Close();
出口(0);
}
if((Event.Type==sf::Event::KeyPressed)&&&(Event.Key.Code==sf::Key::Escape)){
App.Close();
出口(0);
}
}
}
int main()
{
sf::RenderWindow应用程序(sf::VideoMode(80064032),“SFML图形”);
App.SetFramerateLimit(60);//将帧速率限制在60 FPS
而(App.IsOpened()){
HandleEvents(应用程序);//处理事件…废话
App.Clear();//当我删除这一行时,程序不会崩溃。。。。
App.Display();
}
返回退出成功;
}
那么,有任何SFML大师对我有什么建议吗?我曾试图研究这个问题,但我见过的唯一一个试图问这个问题的人的链接断了(因为新的SFML论坛)


谢谢。

您使用的是哪个版本的SFML?您是下载了二进制文件还是自己编译的?我在使用v1.99(开发版本,arch linux上的默认版本)时遇到了完全相同的问题。这在我从源代码编译库时得到了修复。不过,SFML2.0rc现在已经推出,您应该试一试