如何在运行时打开控制台[C ++ / Visual Studio]

时间:2018-03-13 20:04:38

标签: c++ windows visual-studio sdl-2

目前,我正在使用Visual Studio开发SDL应用程序。 现在,如果我想打开控制台以查看输出,我必须输入项目的"属性>链接器>系统>子系统>控制台"为了实现它。但是,当我准备导出时,我会禁用它。

但是,我想知道在运行时是否还要打开(甚至关闭)控制台窗口。具体来说,我希望能够在应用程序运行时按一个键,以便打开控制台并查看输出。

我已经尝试使用AllocConsole中的windows.h,但是当它打开一个控制台窗口时,它似乎不会显示每当我手动设置要使用的应用程序时通常会出现的输出控制台窗口。

(或者,我一直以为我可以打开第二个SDL窗口并在那里显示所有输出,但我不知道如何将应用程序的所有输出流式传输到自身。可能不是最方便的解决方案,但是也会工作。)

1 个答案:

答案 0 :(得分:4)

您可以使用

if (::GetConsoleWindow() == NULL)
{
  if (::AllocConsole())
  {
    (void)freopen("CONIN$", "r", stdin);
    (void)freopen("CONOUT$", "w", stdout);
    (void)freopen("CONOUT$", "w", stderr);

    SetFocus(::GetConsoleWindow());
  }
}

在使用printf

之前