我有以下代码:
#include <SFML\Graphics.hpp>
#include <iostream>
int main(int argc, char* argv[])
{
sf::RenderWindow window(sf::VideoMode(640, 480), "SFML Render");
sf::Image image;
sf::Texture texture;
sf::Sprite sprite;
image.loadFromFile("D:/Project/Sprites/bt1.png");
texture.loadFromImage(image);
sprite.setTexture(texture);
sprite.setPosition(100.0f, 100.0f);
sf::Event event;
while (window.isOpen())
{
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(sprite);
window.display();
}
return 0;
}很简单,但不管用。
我尝试使用不同的路径:
D:/Project/CPP/Game_Engine/Debug/sprites/first.bmp
D:\\Project\\CPP\\Game_Engine\\Debug\\sprites\\first.bmp
d:\\Project\\CPP\\Game_Engine\\Debug\\sprites\\first.bmp然后我尝试使用不同的文件:
D:/Project/Sprites/bt.png
D:/Project/Sprites/anim.bmp
D:/Project/Sprites/boy.jpg编译器在以下行指示:
image.loadFromFile("D:/Project/Sprites/bt1.png");更准确地说,程序在这一行崩溃。

我的配置如下:

错误/崩溃消息如下:
SFML_ERROR.exe: 0xC0000005:нарушениеправдоступапричтениипоадресу0x03BC1000。
翻译如下:
在SFML_ERROR.exe中0x5007DEF8 (msvcr110.dll)处未处理的异常: 0xC0000005:地址0x03BC1000上的访问冲突读取。
发布于 2014-01-15 08:15:05
我的问题是混合调试/发布,我使用了sfml-window.lib,但我必须使用‘sfml-window-d.lib’。我不能使用调试SFML库,因为我使用的是VC++ 2013 (v120,但SFML需要v110)。所以,我重新编译了官方图书馆,它起了作用!
https://stackoverflow.com/questions/21131393
复制相似问题