c++ - 控制台关闭时从 GUI 应用程序附加控制台

标签 c++ winapi console-application command-prompt

<分区>

我需要能够从我用 C++ 编写的基于 GUI 的应用程序输出到控制台,所以我选择使用 AttachConsole (ATTACH_PARENT_PROCESS) API 和 this code这样做。该方法效果很好,除了当我从命令提示符窗口启动我的 GUI 应用程序时,GUI 应用程序启动得很好但是当我关闭命令提示符窗口时,我的 GUI 应用程序被终止(注意,不是关闭,而是终止。)有没有防止此应用程序终止的方法?

最佳答案

您可以防止您的应用程序在有人关闭控制台窗口时关闭。

它涉及调用 SetConsoleCtrlHandler设置 HandlerRoutine拦截那些事件。

如果您希望控制台窗口关闭,但让您的应用程序保持运行状态,您可以调用 FreeConsole在你的HandlerRoutine .如果这不起作用,则处理该消息以防止控制台窗口被破坏,并设置一个标志或计时器,使您的应用程序调用 FreeConsole从处理程序返回后。

我记得,当用户点击窗口上的 X 时,您无法阻止窗口关闭。我为防止这种情况所做的是修改窗口菜单。参见 http://blog.mischel.com/2008/07/14/going-too-far-back/了解一些细节。

关于c++ - 控制台关闭时从 GUI 应用程序附加控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14990176/

相关文章:

c++ - 将 wstring 转换为 string 的古代代码中的可怕警告

c++ - 如何强制 Eclipse 使用 g++ 而不是 gcc?

c++ - 转换为联编文件

delphi - Coinitialize 尚未被调用错误消息

c++ - 编译器找不到头文件中声明的函数

c++ - WinXP 32 位上的互锁*64

delphi - 为 Delphi 翻译 Vista WinAPI C++ 头文件 - 有什么建议吗?

c++ - Windows 7/64 中的串行异步 I/O

c# - 即使控制台不可见,Console.WriteLine 是否会导致性能下降? (C#)

c# - 有没有一种方法可以搜索用户从文件中加载的文本中的特定单词并为其着色?