crash - SFML sf::RenderWindow::createWindow()使程序崩溃

标签 crash window visual-studio-2015 sfml

因此,我一直在学习C++,并且一直在尝试通过一些视频来学习一些SFML 2。最初我没有真正的问题,我使用的是MS VS2012,一切都很好。我开始使用MS VS2015社区,但一切都开始出错,我也不知道为什么!

主要问题:

一切都能编译,但是当我尝试使用sf::RenderWindow::createWindow()时,它只会崩溃

错误消息:

我收到消息“SFML_Project.exe不再起作用”,
我去调试它,它给了我以下信息:

引发未处理的异常:读取访问冲突。
此-> _ Ptr为0xCCCCCCCC。
如果有用于此异常的处理程序,则可以安全地继续执行该程序。

并在此功能上执行(我一无所知的一些SFML代码)

const facet *_Getfacet(size_t _Id) const
    {   // look up a facet in locale object
    const facet *_Facptr = _Id < _Ptr->_Facetcount
        ? _Ptr->_Facetvec[_Id] : 0; // null if id off end  <- ON THIS LINE OF CODE IT BREAKS
    if (_Facptr != 0 || !_Ptr->_Xparent)
        return (_Facptr);   // found facet or not transparent
    else
        {   // look in current locale
        locale::_Locimp *_Ptr = _Getgloballocale();
        return (_Id < _Ptr->_Facetcount
            ? _Ptr->_Facetvec[_Id]  // get from current locale
            : 0);   // no entry in current locale
        }
    }

在调用堆栈中给出的信息行

sfml-system-d-2.dll!std::locale::_Getfacet(unsigned int _Id) Line 451 C++



我的代码:
#include <iostream>
#include "SFML\Graphics.hpp"

int main()
{
    sf::RenderWindow window;
    window.create(sf::VideoMode(800, 800), "WindowName");

    sf::Texture texture;
    sf::Sprite sprite;
    texture.loadFromFile("Player.png");
    sprite.setTexture(texture);

    sf::Event eventHandler;
    while(window.isOpen())
    {
        while(window.pollEvent(eventHandler))
        {
            switch(eventHandler.type)
            {
            case sf::Event::Closed:
                window.close();
                break;
            }
        }

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

SFML版本: Visual C++ 14(2015)-32位

项目属性:

调试-> C / C++->常规->其他包含目录:
  • $(SolutionDir)/SFML-2.3.2/include

  • 调试->链接器->常规->其他库目录:
  • $(SolutionDir)/SFML-2.3.2/lib

  • 调试->链接器->输入->其他依赖项:
  • sfml-main-d.lib
  • sfml-window-d.lib
  • sfml-graphics-d.lib
  • sfml-system-d.lib
  • sfml-network-d.lib
  • sfml-audio-d.lib

  • 我尝试了什么:

    我尝试将所有依赖项从sfml-XX-d.lib转换为sfml-XX.lib文件,这确实允许我创建一个窗口并在该窗口上绘制形状,但是当我尝试使用sf::Texture时控制台命令窗口::: loadFromFile(“filename”)变成矩阵并开始发出哔声。

    最佳答案

    这可能是因为您在图形库之前链接了窗口库。

    尝试向上移动图形库下的窗口库。

    sfml-graphics-d.lib
    sfml-window-d.lib
    sfml-system-d.lib
    

    如果仍然崩溃,则可能是因为您的sfml的dll与您当前拥有的sfml版本不匹配。一次对我来说,我下载了新版本的sfml而不更新二进制文件。

    关于crash - SFML sf::RenderWindow::createWindow()使程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844966/

    相关文章:

    JavaScript Intellisense 在 Visual Studio 2015 中不工作

    java - Android Fragment 简单按钮

    c++ - "Event ID 26 Source Application Popup"之类的错误有何帮助

    c# - WPF 自动调整元素大小

    linux - TCP/IP : set socket option for keep-alive after connection has been established

    visual-studio-2015 - 测试发现期间出现 Visual Studio dotnet 核心套接字错误

    javascript - Node.js 堆内存不足

    android - Android Studio Timer任务在启动时使应用程序崩溃

    c# - WPF如何更改首先打开的窗口

    crash - Visual Studio 2015 企业版在启动、卸载和修复时崩溃