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