我正在使用Visual Studio 2012.在调试模式下编译时,以下代码会导致错误
运行时检查失败#2 - 变量'line'周围的堆栈已损坏。
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
std::cout << "Please ignore this box\n";
sf::Font font;
if (!font.loadFromFile("font.ttf"))
std::cout << "Font not loaded\n";
sf::RenderWindow window(sf::VideoMode(1000, 800),
"Test Window",
sf::Style::Titlebar | sf::Style::Close);
if (!window.isOpen())
std::cout << "Problem creating window\n";
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(sf::Color::Black);
sf::RectangleShape line(sf::Vector2f(2, 750));
line.setFillColor(sf::Color::White);
line.setPosition(700, 25);
window.draw(line);
window.display();
}
return 0;
}
在发布模式下编译解决了这个问题,但我想知道导致这个问题的原因以及是否有某种方法可以解决它。
感谢。
答案 0 :(得分:1)
引用the official tutorial的红色部分:
链接到与配置匹配的库非常重要:&#34; sfml-xxx-d.lib&#34; for Debug,&#34; sfml-xxx.lib&#34;发布。糟糕的混合可能会导致崩溃。