c++ - 如何在“SUBSYSTEM:WINDOWS”下的 Windows (C++ WinApi) 上显示和输出到控制台 (cmd)
问题描述
我见过同时使用 Window 和控制台运行的 Windows 应用程序。我发现自己时不时地想知道这个问题,我记得每当我研究它时,我都找不到解决方案。
有没有办法对我的 WinApi C++ 应用程序进行编程,以便我可以像在链接器选项下通常那样输出到控制台SUBSYSTEM:CONSOLE
?换句话说,我可以打开一个窗口,用我的WinMain
等等WndProc
,但我也想做std::cout
,std::cin
和std::wcout
.. 一个很好的用例是使用控制台记录内容,并将窗口作为主要应用程序.
std::system()
改为使用并从中启动cmd
然后输出是个好主意吗?我不这么认为,但我当然不知道。
Windows 8.1、x86_64、MSVS 2017。
解决方案
用于AttachConsole
连接到现有控制台,或AllocConsole
创建新控制台。然后根据需要将cin
/重定向cout
到该控制台(取决于编译器特定运行时实现的要求)。或者,只需使用ReadConsole
/WriteConsole
代替。
推荐阅读
- java - javacv 合并图像和 mp3 创建的 mp4 比原始 mp3 长
- virtualenv - CentOS 7.8和python3.6无法创建虚拟环境
- javascript - 将 jQuery 中的错误方法转换为 Javascript
- javascript - React、Leaflet - Hooks、setView 和 useRef
- c++ - 如何在 c++ 的 while 循环中添加数字?
- google-apps-script - 修改灵活的 Google 表格 onEdit 脚本以适应更广泛的输入
- javascript - 一个ul中的vue两个数组循环
- python - 如何从 Pyspark 上的另一个数据帧中完全删除/减去/删除一个数据帧并导出到 csv
- laravel - Laravel 7 排队的电子邮件非常慢,带附件但速度很快
- r - 过滤中未找到对象