当前位置: 首页 > news >正文

【MFC】如何设置让exe的控制台不会跟着exe退出而退出

在 Windows 下,MFC 程序(如 echo.exe)如果用 AllocConsole 创建了控制台窗口,默认情况下,当主程序(exe)退出时,控制台窗口也会自动关闭。这是操作系统的行为,不能直接阻止。
在这里插入图片描述

常见做法

1. 让主程序延迟退出

在主窗口关闭前,阻塞主线程(如 getchar()system("pause")、弹窗等),让用户有机会看到控制台内容。例如:

void CechoDlg::OnDestroy()
{// ... 你的清理代码 ...std::cout << "按任意键关闭控制台..." << std::endl;getchar(); // 等待用户输入CDialogEx::OnDestroy();
}
2. 用外部命令行启动 exe

在命令行(cmd)中手动运行 echo.exe,这样即使程序退出,cmd 窗口不会自动关闭。

3. 写日志到文件

如果只是想保留调试信息,建议将日志输出到文件,而不是依赖控制台窗口。

4. 用 DebugView 或 plog 等日志库

用日志库输出到文件或调试窗口,便于分析。


结论

  • 控制台窗口和 exe 生命周期绑定,exe 退出时控制台必然关闭。
  • 最佳实践:在程序退出前用 getchar() 或弹窗等方式阻塞,或直接用日志文件保存调试信息。

http://www.xdnf.cn/news/742195.html

相关文章:

  • C++中指针常量和常量指针的区别
  • 【设计模式-4.6】行为型——状态模式
  • [蓝桥杯]拉马车
  • L56.【LeetCode题解】 电话号码的字母组合
  • 触发器与存储过程详解
  • Mybatis-Plus简单介绍
  • 鸿蒙HarmonyOS (React Native)的实战教程
  • Java后端技术栈问题排查实战:Spring Boot启动慢、Redis缓存击穿与Kafka消费堆积
  • 【Java学习笔记】内部类(重点)
  • 数据结构:时间复杂度(Time Complexity)和空间复杂度(Space Complexity)
  • Typescript学习教程,从入门到精通,TypeScript 配置管理与编译器详解(19)
  • Rust 配置解析`serde` + `toml`
  • 华为OD机试真题——找出两个整数数组中同时出现的整数(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】
  • MySQL事务与锁机制详解:确保数据一致性的关键【MySQL系列】
  • 005 flutter基础,初始文件讲解(4)
  • leetcode付费题 353. 贪吃蛇游戏解题思路
  • 实现MPC钱包
  • [蓝桥杯]阶乘求值【省模拟赛】
  • Thinkphp6实现websocket
  • Spring Boot养老院管理系统源码分享
  • MacOS安装Docker Desktop并汉化
  • 2.5 TypeScript 中的 instanceof 运算符
  • C++中全局变量和局部变量的区别
  • 华为OD机试真题——最小的调整次数/特异性双端队列(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 【Netty系列】实现HTTP文件服务器
  • Redis:功能特性和应用场景
  • 学术合作交流
  • 生成https 证书步骤
  • 3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云