单击关闭控制台 window 结束 C++ 控制台程序是正确的方法吗?

click close console window to end a c++ console program is proper way?

我刚遇到这个问题几天了。之前我一直认为从main返回然后点击关闭控制台window让程序退出和结束程序是一样的。

但是,我发现它们是不同的。因为我的程序打开了一个相机,它是一个对象。并且关闭控制台 windows 不会破坏或清理对象。所以下次再打开相机会报错

我只需要确认一下这是不是真的?

那为什么到现在我才看到问题?

关闭 运行 控制台应用程序会终止进程,不会给您任何清理代码的机会。我想你可以挂钩 windows 消息循环来捕获 WM_CLOSE 消息并进行适当的清理,但在一天结束时,你不应该终止进程。

在 Windows 中关闭控制台 window 会终止 运行 程序(或 运行 程序堆栈)。除非它为此事件注册了一个处理程序,否则它没有机会进行清理。如果你想要解决方案,请注册一个处理程序。

嗯,查阅文档,稍等……

好的,查找SetConsoleCtrlHandler