代码之家  ›  专栏  ›  技术社区  ›  KeyC0de

如何在“子系统:Windows”下显示和输出到Windows(C++ WINAPI)上的控制台(CMD)

  •  0
  • KeyC0de  · 技术社区  · 7 年前

    我见过windows应用程序同时使用一个窗口和一个控制台。我发现自己时不时地在想这个问题,我记得每当我研究它时,我总是找不到解决办法。

    SUBSYSTEM:CONSOLE WinMain WndProc 但是我也想做 std::cout , std::cin std::wcout .. 这方面的一个很好的用例是使用控制台记录东西,并将窗口作为主应用程序。

    用它是个好主意吗 std::system() 而不是启动 cmd 然后输出?我不这么认为,但我当然不知道。

    Windows 8.1、x86\u 64、MSVS 2017。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Remy Lebeau    7 年前

    使用 AttachConsole 连接到现有控制台,或 AllocConsole 创建新控制台。然后重定向 cin / cout ReadConsole / WriteConsole 相反。

        2
  •  0
  •   Michael Loda    7 年前

    是,将子系统设置为WINDOWS和/ENTRY(入口点)设置为 WinMainCRTStartup (或 wWinMainCRTStartup 如果您使用的是unicode)。您甚至可以只为调试配置设置它,这样控制台就不会出现在发行版中。