gpt4 book ai didi

c++ - 如何从 Win32 C++ 应用程序输出到父控制台窗口?

转载 作者:行者123 更新时间:2023-11-27 23:43:07 43 4
gpt4 key购买 nike

我有一个 WinAPI/Win32 应用程序。如果我在从命令提示符运行时尝试使用 cin/cout/cerr,它不起作用。我尝试将项目类型从 Windows 应用程序切换到控制台应用程序,但问题是当我通过双击可执行文件正常运行时出现控制台窗口。

所以我的问题是:有什么方法可以在 Win32 应用程序中将 cin/cout/cerr 与父(调用)控制台窗口一起使用? (如果参数 /c/? 被传递,我只想要这种行为,所以如果它在没有参数的情况下被调用,那么无论它应该启动 GUI 是什么)。

最佳答案

默认情况下,GUI 应用程序没有附加控制台窗口。

当从控制台进程运行 GUI 应用程序时,GUI 应用程序可以使用 AttachConsole()将自身附加到控制台。

或者,如果 GUI 应用程序不是从控制台进程运行,但仍想使用控制台窗口,它可以使用 AllocConsole() 创建自己的控制台窗口。 .

一旦 GUI 应用程序连接到控制台,它就可以使用 GetStdHandle()获取控制台的 STDIN/STDOUT 句柄,然后重定向 cin/cout 以使用它们(如何使用取决于您的特定 STL 实现)。

或者,您可以忽略 cin/cout 并只使用 ReadConsole()WriteConsole()直接代替。

关于c++ - 如何从 Win32 C++ 应用程序输出到父控制台窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52825867/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com