gpt4 book ai didi

c++ - Steamworks 和 SFML 程序退出时出现访问冲突

转载 作者:太空狗 更新时间:2023-10-29 23:11:02 26 4
gpt4 key购买 nike

同时使用 Steamworks 和 SFML 时程序退出时抛出异常:在 Project1.exe 中的 0x00007FFA919D024E (ntdll.dll) 抛出异常:0xC0000005:访问冲突读取位置 0x0000000000000010。

我已经将程序缩减到最基础的部分,但仍然遇到问题:

#include <SFML/Graphics.hpp>
#include <steam/steam_api.h>

int main()
{
SteamAPI_Init();

sf::RenderWindow window(sf::VideoMode::getDesktopMode(), "Title", sf::Style::Close);

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

SteamAPI_Shutdown();

return 0;
}

这是调用堆栈: call stack

最佳答案

事实证明,解决方案非常简单,只需将 Steamworks API 初始化移到创建窗口之后即可。

#include <SFML/Graphics.hpp>
#include <steam/steam_api.h>

int main()
{
sf::RenderWindow window(sf::VideoMode::getDesktopMode(), "Title", sf::Style::Close);

SteamAPI_Init();

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

SteamAPI_Shutdown();

return 0;
}

关于c++ - Steamworks 和 SFML 程序退出时出现访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com