单击关闭控制台窗口以结束c ++控制台程序是正确的方法吗?

时间:2015-01-31 19:22:26

标签: c++ console-application

我刚刚遇到这个问题几天了。之前,我一直认为通过从main返回并单击关闭控制台窗口退出程序与结束程序的方式相同。

但是,我发现它们不同。由于我的程序打开了一个对象的相机。关闭控制台窗口不会破坏或清理对象。所以下次再次打开相机时出错

我只是需要确认这是否属实?

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

2 个答案:

答案 0 :(得分:1)

关闭正在运行的控制台应用程序将终止进程,而不是让您有机会获得任何清理代码。我想你可以挂钩一个Windows消息循环来捕获WM_CLOSE消息并进行适当的清理,但是在一天结束时,你就不应该杀死这个过程。

答案 1 :(得分:1)

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

嗯,请查阅文档,等几秒钟......

好的,查看SetConsoleCtrlHandler