SDL2:单击控制台窗口后调用 cout 会导致冻结

SDL2: Calling cout after Clicking console window causes Freeze

提问人:user1675016 提问时间:11/17/2023 最后编辑:genpfaultuser1675016 更新时间:11/17/2023 访问量:45

问:

使用 SDL2.如果我在 Visual Studio 中测试运行(使用 Subsystem:Console,因此控制台也会显示),然后单击控制台窗口,然后单击返回 SDL 窗口,并在 SDL_PollEvent 循环中调用 cout,程序将冻结。

例如

if (ev.type == SDL_KEYDOWN)
{
    if (ev.key.keysym.sym == SDLK_SPACE)
    {
        //causes an immediate freeze
        std::cout << "space pressed" << std::endl;
    }
}

它可以是另一种类型的事件,例如SDL_MOUSEBUTTONDOWN事件,但似乎单击控制台窗口,然后返回 SDL 主窗口,然后调用 cout,会以某种方式触发此事件。单击另一个窗口(如 Visual Studio)不会导致这种情况发生。

有谁知道为什么会发生这种情况,以及我如何缓解这个问题?

C++ Windows SDL-2

评论

4赞 genpfault 11/17/2023
这回答了你的问题吗?命令提示符中的 QuickEdit 模式如何以及为什么冻结应用程序?

答: 暂无答案