【问题标题】:0xC0000005: Access violation reading location0xC0000005:访问冲突读取位置
【发布时间】:2020-11-23 10:02:04
【问题描述】:

您好,我是使用 SFML 库的新手,我想使用 SFML 库显示图像,但在以下代码中出现“0xC0000005:访问冲突读取位置”错误: 我已经在项目位置添加了 png 文件,但代码仍然不起作用

#include <SFML/Graphics.hpp>
#include<iostream>
int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::Texture t1;
    std::cout << "load enemy texture" << std::endl;
    //system("dir");

    if (!t1.loadFromFile("test.jpg")) {
        std::cout << "Could not load enemy texture" << std::endl;
        return 0;
    }
    
    sf::Sprite enemySprite;
    enemySprite.setTexture(t1);
    enemySprite.setPosition(sf::Vector2f(100, 100));

    while (window.isOpen())
    {
     
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(enemySprite);
        window.display();
    }

    return 0;
}

【问题讨论】:

  • 1.您不包括任何 SFML 库。 2.您忘记了&lt;iostream&gt;之前的空格(有时会产生错误)
  • @Migue 感谢您的评论,我已经在课堂上添加了 sfml 库,但是在添加问题时,由于未添加空间,该部分未包括在内。我也根据sfml文档做了配置
  • 你也加了空格吗?
  • @Miguel 是的,但空格不会影响任何东西
  • 您是否尝试过运行调试器来查看它在哪里崩溃?

标签: c++ visual-studio runtime-error sfml


【解决方案1】:

@Yksisarvinen 在评论中建议的链接将配置切换为 Release 突然使一切正常。

要使调试配置正常工作,我只需将名称从 sfml-graphics.lib 更改为 sfml-graphics-d.lib(等等)。

谢谢你们。

【讨论】:

  • 很高兴您得到了解决方案,感谢您的分享,如果您将它们标记为答案,我将不胜感激,这将对其他社区有益。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
相关资源
最近更新 更多