c++ - SFML 错误 loadFromFile()

标签 c++ visual-c++ sfml

我有以下代码:

#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");

更准确地说,程序在这一行崩溃了。 enter image description here

我的配置如下: enter image description here

错误/崩溃消息如下:

Необработанное исключение по адресу 0x5007DEF8 (msvcr110.dll) в SFML_ERROR.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x03BC1000.

译文如下:

Unhandled exception at 0x5007DEF8 (msvcr110.dll) in SFML_ERROR.exe: 0xC0000005: Access violation reading on Address 0x03BC1000.

最佳答案

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

关于c++ - SFML 错误 loadFromFile(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21131393/

相关文章:

c++ - 我必须使用 ->Release() 吗?

c++ - 构造函数中的四叉树和区域大小

c++ - Visual Studio 可以在重建前提示吗?

c++ - 如何将模板化类实例作为模板参数传递给另一个模板?

c++ - 查询 std::mutex 锁定状态

c++ - 为什么临时对象的引用在这里有效?

c++ - 警告 C26451 : Arithmetic overflow

c++11 线程、SFML 和 code::blocks

c++ - 最佳 fps 的 SFML 主循环

c++ - 使用 libCurl API 请求初级指导