SFML(C ++)创build窗口时崩溃?

我开始用SFML和C ++创build一个游戏。 不过,我有一个问题。 我有基本的骨架类代码,但由于某种原因,当我创build一个窗口(sf :: Window)时,我立即崩溃! 这段代码不包含任何事件检查代码,但它确实并且仍然崩溃; 此外,显然,如果由于缺less事件检查,应该需要几秒钟的时间才能崩溃。 当然,一旦我看到窗口,我会添加它。

#include <iostream> #include <windows.h> #include <SFML/Window.hpp> #include "GameBase.h" #include "Character.h" #include "GameStart.h" using namespace std; using namespace sf; int main() { GameStart::GameStart(); Clock timer; cout << "Started." << endl; Window GameWindow(VideoMode(640, 480),"Basic window"); while (1) { Sleep(0.5f); } return 0; } 

我知道这不是计时器,GameStart或任何其他个人包含文件。

Code :: Blocks 12.11附带了MinGW GCC 4.7.1 TDM编译器,它与官方下载页面提供的二进制文件不兼容,所以除非你用新的编译器重新编译了SFML 1.6,否则就不能运行。

除此之外,你应该阅读SFML常见问题的这一部分 。

我试了一下,它没有问题的工作:

 #include <iostream> #include <SFML/Window.hpp> int main() { std::cout << "Started." << std::endl; sf::Window gameWindow( sf::VideoMode(640, 480),"Basic window"); while (gameWindow.IsOpened()) { sf::Event event; while (gameWindow.GetEvent(event)) { if (event.Type == sf::Event::Closed) gameWindow.Close(); } } return EXIT_SUCCESS; } 

while(1) by while (gameWindow.IsOpened())并加入了关闭按钮的支持。 这允许删除这里不相关的窗口标题。

你应该尝试在调试模式下编译和执行它。 这可能会帮助你理解这个问题。

此外,当你的代码不起作用。 我会建议评论一切不相关的东西(在这个例子中: GameStart::GameStart(); Clock timer; ,…),看看它是否工作。