如何处理Win32应用程序终止

时间:2013-03-07 16:03:28

标签: c winapi signals

我有一个没有用C语言写的窗口的Win32应用程序。 我的问题是:有没有办法处理我的申请的终止。防爆。从任务管理器或通过控制台关闭它。

2 个答案:

答案 0 :(得分:2)

从问题中不清楚,但如果这是一个控制台模式应用程序,那么您可以调用SetConsoleCtrlHandler来安装Windows将在终止您的应用程序之前调用的回调。请注意,此回调在单独的线程上运行,并且您必须快速完成回调函数。

如果它是一个本机Windows程序,只是没有创建一个窗口,那么你真的需要一个窗口来获取这样的通知。这不是问题,也不一定是可见的。只是不要调用ShowWindow()。

请注意,如上所述的atexit()不起作用,这些是您所讨论的粗鲁中止,不会让程序通过正常的关闭序列。

答案 1 :(得分:1)

您可能希望查看atexit()函数(http://msdn.microsoft.com/en-us/library/tze57ck3%28v=vs.100%29.aspx)。

使用此功能可以安装程序终止时调用的处理程序。