试图创建SFML窗口时发生访问冲突

Access violation trying to create an SFML window

本文关键字:访问冲突 窗口 创建 SFML      更新时间:2023-10-16

我已经(两次了)遵循了在Visual Studio中启动和运行SFML的设置指南。我已经确保在项目的设置中指向适当的。lib文件和目录,并且所需的。dll文件存在于应用程序的工作目录中,按照指南。

我正在试着运行以下内容:(ambitious, I know…)

#include "stdio.h";
#include <iostream>;
#include <SFML/Graphics.hpp>;
int main ()
{
    sf::RenderWindow window( sf::VideoMode( 640, 480 ), "Title" );
    std::cin.get();
}

编译成功,但一旦应用程序启动,我得到:

在D20 RPG.exe中0x56D5EEB6 (sfml-system-d-2.dll)抛出异常:0xC0000005:访问违反读取位置0xCCCCCCD8.

第一行注释后,应用程序开始和结束都没有问题。

我需要找到SFML源代码并自己编译吗?它是一个相当庞大的库,有很多依赖关系,所以我一直在避免这样做,除非有人认为它可能有帮助。我对c++和VS的经验不够丰富,我认为在解决这个问题之前,我更有可能引入更多的问题。

通过创建一个新的空控制台应用程序项目并使用NuGet包管理器界面安装sfml-graphics、sfml-window和sfml-system包,我能够使这段代码工作。