SDL无法打印到控制台

时间:2019-06-01 18:45:35

标签: c++ sdl

我试图在Visual Studio 2019中使用SDL,但我的程序仅显示一个空控制台。目前,我只希望能够使用SDL库编译程序。

#include <iostream>
#include <SDL.h>

int main(int argc, char** argv)
{
    std::cout << "yee haw!" << std::endl;

    return 0;
}

这段代码只是给我一个带有文本的控制台:

(进程32)以代码0退出。 要在调试停止时自动关闭控制台,请启用工具->选项->调试->在调试停止时自动关闭控制台。 按任意键关闭此窗口。 。

我要在哪里“哇!”在它之前。
当我取出#include <SDL.h>(但我想要SDL.h)时,它工作正常。

我听说SDL现在重定向到stdout.txt文件,但在任何地方都找不到。我也尝试过用我找到的教程中的代码显示一个窗口,但这也给了我一个空的控制台。

我正在Windows和SDL 2.0.9上使用Visual Studio 2019

谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,SDL使用宏技巧来代替main函数。用户定义的main函数必须采用以下格式:

int main(int argc, char** argv)
{
    // whatever
    return 0;
}

或者,如果您不希望出现这种情况,则可以使用SDL_SetMainReady

#define SDL_MAIN_HANDLED
#include <SDL.h>

int main()
{
    SDL_SetMainReady();

    // whatever

    return 0;
}