SFML(32位VS12)-SFML.exe中0x701ADEF8(msvcr110.dll)处未处理的异常:0xC00

SFML (32-bit VS12) - Unhandled exception at 0x701ADEF8 (msvcr110.dll) in SFML.exe: 0xC0000005: Access violation reading location 0x0526. LoadFromFile

本文关键字:未处理 异常 dll 0xC00 0x701ADEF8 VS12 32位 -SFML exe SFML msvcr110      更新时间:2023-10-16

下面的代码给了我未捕获的异常(特别是

txtr.loadFromFile("C:/Users/kidz/Documents/Visual Studio 2012/Projects/SFML/Debug/chessboard.gif");

):"SFML.exe中0x701ADEF8(msvcr110.dll)处未处理的异常:0xC0000005:读取位置0x052600000时发生访问冲突。"

int _tmain(int argc, wchar_t* argv[]) {
    sf::RenderWindow window(sf::VideoMode(512, 512), "ChessPlusPlus", sf::Style::Close);
    sf::Sprite chessboard;
    sf::Texture txtr;
    txtr.loadFromFile("C:/Users/kidz/Documents/Visual Studio 2012/Projects/SFML/Debug/chessboard.gif");
    chessboard.setTexture(txtr);
    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed) {
                window.close();
            }
        }
        window.clear();
        window.draw(chessboard);
        window.display();
    }
    getwchar();
    return 0;
}

 nbsp nbsp 此外,在程序调试过程中,一堆随机的ASCII字符会输出到控制台上(有时甚至是个人文件,如随笔等)。然后,控制台变为空白(空字符),并抛出异常。

 nbsp nbsp 有一次,我可以暂停程序并一直向上滚动,它说:"无法打开文件‘chessboard.gif(单词中有一些随机ASCII字符)’",然后是ASCII字符的长列表。

 nbsp nbsp SFML有什么问题吗?还是我做错了什么?我知道SFML文档说,有时文件可能不会加载并抛出异常,但在这种情况下,它会变得疯狂。此外,我随机放置了一个不存在的文件名,但同样的事情仍然发生,而不是抛出一个未找到的文件异常。

 nbsp nbsp 我在Orwell Dev-C++上尝试过同样的代码,它只是在图像应该在的地方返回一个白框,并在文件不存在时返回一个异常。

部分图片:
https://i.stack.imgur.com/gq420.png
https://i.stack.imgur.com/Os8jw.png

 nbsp nbsp 我很乐意提供任何额外的信息。

谢谢,
 nbsp;朋友们!

将调试库与发布模式混合或将发布库与调试模式混合时会出现此问题。请确保在调试模式下只使用-d后缀的SFML库,在发布模式下仅使用非后缀的SFML-如官方教程中所述。

此外,还建议始终使用int main()。如果您只想要一个没有命令提示符的窗口,那么您可以将子系统更改为window并针对sfml-main进行链接。