【发布时间】:2023-03-30 18:15:01
【问题描述】:
我有以下代码:
#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");
更准确地说,程序在这一行崩溃。
我的配置如下:
错误/崩溃消息如下:
Необработанное исключение по адресу 0x5007DEF8 (msvcr110.dll) в SFML_ERROR.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x03BC1000.
翻译如下:
在 0x5007DEF8 (msvcr110.dll) 处未处理的异常 SFML_ERROR.exe:0xC0000005:读取访问冲突 地址 0x03BC1000。
【问题讨论】:
-
能否请您发布错误/崩溃消息的文本(可选择的,即)?
-
"loadFromFile 函数有时会在没有明显原因的情况下失败。首先,检查标准输出中 SFML 打印的错误消息(检查控制台)。" - 正在打印什么信息?
-
我无法使用
sf::err,程序在 loadFromFile() 上完全崩溃,因此下一行不执行。错误/崩溃消息在上面。
标签: c++ visual-c++ sfml