Для почти всех объектов, которые я добавил До сих пор (sf::Color, sf::Image, sf::Texture и т.д.) к образцу кода, который я схватил с сайта SFML, исключения выбрасываются, как только я запускаю его, к согласию:
Необработанное исключение при 0x61C71B86 (sfml-system-2.dll) в gameboiss.exe: 0xC0000005: нарушение прав доступа место чтения 0x00000074.
По какой-то причине он возник в связи с линией RenderWindow. Если я удаляю все линии, ссылающиеся на эти объекты, это работает штрафы. Даже если я оставляю только одну строку, создающую переменную (т. е. SF::Texture texture), исключение все равно создается. Я пробовал несколько вещей среди глядя на местных жителей / авто в debug, и это, кажется, не дает много света.
Я работаю над Visual Studio 2012, любая помощь будет appreiciated. Ниже приведен код. спасибо 🙂
#include <iostream>
#include "SFML/Window.hpp"
#include "SFML/Graphics.hpp"
#include "SFML/System.hpp"
int main(){
sf::RenderWindow window(sf::VideoMode(200,200), "game boi");
sf::CircleShape shape(100.f);
//source of error
sf::Texture texture;
texture.loadFromFile("charspartapix.png");
/*if(!hero.loadFromFile("charspartapix.png")){
std::cerr << "Error: sprite not loaded.n";
return 1;
}*/
//sf::Image background;
//if (!background.loadFromFile("background.jpg"))
//return -1;
shape.setFillColor(sf::Color::Blue);
sf::Vector2i pos;
while (window.isOpen()){
sf::Event event;
while (window.pollEvent(event)){
if (event.type == sf::Event::Closed)
window.close();
if (event.type == sf::Event::GainedFocus)
std::cout << "playing";
if (event.type == sf::Event::LostFocus)
std::cout << "notplayingn";
if (event.type == sf::Event::MouseButtonPressed){
sf::Vector2i pos = sf::Mouse::getPosition(window);
std::cout << pos.x << " " << pos.y << std::endl;
}
if (event.type == sf::Event::KeyPressed){
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)){
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)){
window.close();
}
}
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
<code>
Я согласен с RetiredNinja комментарий выше: если это произойдет, как только вы создать рендер окно, это скорее всего какой стл версии разница (из переданной строки; поскольку
sf::String
является частью сфмл-система), это обычно в случае, когда вы перепутайте версии (визуальный студийных релизов или релиз/отладка сборках).Вы уверены, что выбрали правильную загрузку со страницы загрузки SFML ? В качестве альтернативы можно попробовать загрузить и скомпилировать SFML из официального репозитория .