我正在为我的项目使用 SFML ,我目前正在关注该网站上的教程。
目前,我只需使用以下代码(直接从教程中粘贴)创建 RenderWindow 的第一步:
#include <SFML/Graphics.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
int main()
{
// create the window
sf::VideoMode vm (800, 600);
sf::RenderWindow window(vm, "My window");
// run the program as long as the window is open
while (window.isOpen())
{
// check all the window's events that were triggered since the last iteration of the loop
sf::Event event;
while (window.pollEvent(event))
{
// "close requested" event: we close the window
if (event.type == sf::Event::Closed)
window.close();
}
// clear the window with black color
window.clear(sf::Color::Black);
// draw everything here...
// window.draw(...);
// end the current frame
window.display();
}
return 0;
}
它编译得很好,但是当我运行它时,我得到以下异常:
First-chance exception at 0x76BFC42D in OpenGlTest.exe: Microsoft C++
exception: std::length_error at memory location 0x0046F754.
我尝试调试并将std :: length_error跟踪到RenderWindow构造函数:
sf::RenderWindow window(vm, "My window");
我对c ++和OpenGL缺乏经验,所以我不知道如何继续进行,它不会让我进入构造函数来看看发生了什么,它只是立即抛出异常。
感谢任何帮助。
答案 0 :(得分:1)
我想我发现了这个问题。我不确定这是修复还是运气,但如果在使用Visual C ++时链接到sfml-xxxx.lib而不是sfml-xxxx-d.lib,则显然会发生崩溃。它似乎在这种变化之后起作用。
答案 1 :(得分:0)
我不是SFML的专家,但是当你像这样的窗口,有窗口按钮,它们一起使用超过10个像素。
您是否尝试过增加尺寸? 尝试使用200,就像教程一样。