2

我有一个没有用 C 语言编写的窗口的 Win32 应用程序。我的问题是:有什么方法可以处理我的应用程序的终止。前任。从任务管理器或通过控制台关闭它。

4

2 回答 2

3

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

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

请注意,前面提到的 atexit() 不起作用,这些是您所说的粗鲁的中止,不会让程序通过其正常的关闭顺序。

于 2013-03-07T16:53:52.320 回答
1

您可能想看看该atexit()功能(http://msdn.microsoft.com/en-us/library/tze57ck3%28v=vs.100%29.aspx)。

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

于 2013-03-07T16:14:15.153 回答