首页 > 解决方案 > 如何在“SUBSYSTEM:WINDOWS”下的 Windows (C++ WinApi) 上显示和输出到控制台 (cmd)

问题描述

我见过同时使用 Window 和控制台运行的 Windows 应用程序。我发现自己时不时地想知道这个问题,我记得每当我研究它时,我都找不到解决方案。

有没有办法对我的 WinApi C++ 应用程序进行编程,以便我可以像在链接器选项下通常那样输出到控制台SUBSYSTEM:CONSOLE?换句话说,我可以打开一个窗口,用我的WinMain等等WndProc,但我也想做std::coutstd::cinstd::wcout.. 一个很好的用例是使用控制台记录内容,并将窗口作为主要应用程序.

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

Windows 8.1、x86_64、MSVS 2017。

标签: c++cwindowsvisual-studiowinapi

解决方案


用于AttachConsole连接到现有控制台,或AllocConsole创建新控制台。然后根据需要将cin/重定向cout到该控制台(取决于编译器特定运行时实现的要求)。或者,只需使用ReadConsole/WriteConsole代替。


推荐阅读