Я использую Visual Studio 2017, я установил компоновщики, включает в себя как конфигурации отладки, так и выпуска.Каждый раз, когда я пытаюсь запустить код, он генерирует исключения из поврежденных стеков вокруг различных переменных.Будь то «настройки», «окно» и т. Д.
Я запустил два кода, оба с одинаковыми результатами:
#include<SFML/Graphics.hpp>
#include<iostream>
int main()
{
sf::ContextSettings settings;
settings.majorVersion = 3;
settings.minorVersion = 3;
settings.depthBits = 24;
settings.antialiasingLevel = 16;
sf::RenderWindow window(sf::VideoMode(800, 600), "Game", sf::Style::Default);
window.setActive(true);
window.setFramerateLimit(60);
while (window.isOpen())
{
window.clear(sf::Color::Black);
window.display();
sf::Event ev;
while (window.pollEvent(ev))
{
if (ev.type == sf::Event::Closed || sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
{
window.close();
}
}
}
return 0;
}
И второй:
#include<iostream>
#include<SFML/Graphics.hpp>
int main()
{
using namespace sf;
RenderTexture texture;
texture.create(800, 600);
texture.clear(Color::Black);
texture.display();
texture.getTexture().copyToImage().saveToFile("D:\output\asd.bmp");
return 0;
}
Оба кода выдают похожие исключения, первая программа выдает:
Ошибка проверки времени выполнения # 2 - стек вокруг переменной 'settings' поврежден.
Ошибка проверки времени выполнения# 2 - Стек вокруг переменной 'window' был поврежден.
Второй бросает
Ошибка проверки во время выполнения # 2 - Стек вокруг переменной 'texture'был поврежден.
Когда я нажимаю «продолжить» в отладчике, он указывает на gs_report с необработанным исключением:
Необработанное исключение в 0x00A36859 в Project2.exe: стек cookieкод инструментария обнаружил переполнение буфера в стеке.
Что-то не так с кодами или что-то не так в моих настройках?