【问题标题】:SFML error loadFromFile()SFML 错误 loadFromFile()
【发布时间】: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


【解决方案1】:

我的问题是混合调试/发布,我使用了sfml-window.lib,但我必须使用`sfml-window-d.lib'。我无法使用调试 SFML 库,因为我使用的是 VC++ 2013(v120,但 SFML 需要 v110)。于是,我重新编译了官方库,果然成功了!

【讨论】:

  • 您应该将您的回复标记为答案 - 虽然从技术上讲这是我在论坛上的答案,哈哈。 :D
  • 我对字体也有同样的问题。我正在使用 VS 2010 - 我认为是在发布模式下? (如何检查?)我使用的库没有 -d 选项?一切都会编译和链接,但 loadFromFile 函数会导致相同的错误 - 我该如何解决这个问题?
  • 对于遇到此问题的其他人,请确保您已包含 sml-.lib/.dll 而不是 sml--d.lib/.dll 用于发布模式和调试模式反之亦然,我在这上面浪费了好一小时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 2014-02-25
  • 2018-05-23
  • 2013-10-04
  • 2018-08-26
  • 2013-12-11
相关资源
最近更新 更多