我见过同时使用窗口和控制台运行的 Windows 应用程序。我发现自己时不时地想知道这个问题,我记得每当我研究它时,我都找不到解决方案。
有没有一种方法可以对我的 WinApi C++ 应用程序进行编程,以便我可以像在链接器选项 SUBSYSTEM:CONSOLE
下通常做的那样输出到控制台?换句话说,我可以用我的 WinMain
和 WndProc
等打开一个窗口,但我也想做 std::cout
, std::cin
和 std::wcout
.. 一个很好的用例是使用控制台记录内容并将 Window 作为主要应用程序。
使用 std::system()
并从中启动 cmd
然后输出是否是个好主意?我不这么认为,但我当然不知道。
Windows 8.1、x86_64、MSVS 2017。
最佳答案
使用 AttachConsole
附加到现有控制台,或使用 AllocConsole
创建新控制台。然后根据需要将 cin
/cout
重定向到该控制台(取决于编译器特定运行时实现的要求)。或者,只需使用 ReadConsole
/WriteConsole
即可。
关于c++ - 如何在 Windows (C++ WinApi) `SUBSYSTEM:WINDOWS` 下显示和输出到控制台 (cmd),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846179/