现在,我正在尝试让SFML与我的Visual Studio2010一起工作,这样我就可以开始学习如何使用SFML中的库来制作windows应用程序和游戏。我正在按照教程here打开一个新窗口,但我的程序似乎立即崩溃了。我真的不知道为什么:S。它看起来是构建和编译的,但随后就中断了:
编辑:它在这一行中断:App.Create(sf::VideoMode(800, 600, 32), "SFML Window");
#include <SFML/Window.hpp>
int main ()
{
sf::Window App;
App.Create(sf::VideoMode(800, 600, 32), "SFML Window");
bool Running = true;
while (Running)
{
sf::Event Event;
while (App.GetEvent(Event))
{
if (Event.Type == sf::Event::Closed)
Running = false;
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
Running = false;
}
App.Display();
}
return EXIT_SUCCESS;
}
另外,我应该指出:在SFML网站上,使用Visual Studio设置它的教程似乎是针对VS2008的(使用VS设置SFML )。我设法为VS2010获取了一组指令并对其进行了设置。我使用了一个简短的程序来测试SFML库是否工作正常:
#include <SFML/System.hpp>
#include <iostream>
int main()
{
sf::Clock Clock;
while (Clock.GetElapsedTime() < 5.f)
{
std::cout << Clock.GetElapsedTime() << std::endl;
sf::Sleep(0.5f);
}
return 0;
}
^此程序运行正常。
发布于 2013-03-29 18:58:47
SFML库是为Visual Studio 2008编译的。如果你将它与VS2010一起使用,它将会“某种”工作。当您调用某些函数(如App.Clear())时,您将收到有关损坏的堆栈的消息,以及可能出现的其他硬崩溃。
您需要自己重新编译库的源代码,或者找到其他人已经这样做的版本。我不相信有一个‘官方’的来源,但如果你在SFML网站上搜索论坛,你会找到一些2010年编译的库的链接。
回答晚了,我知道...但这个问题一直都在出现。
发布于 2011-12-11 04:43:33
我非常确定您在这里得到的错误是因为您使用了Window
而不是RenderWindow
。
https://stackoverflow.com/questions/8461970
复制相似问题