【发布时间】:2014-08-04 15:49:09
【问题描述】:
我是 C++ 新手,最近开始了一个项目,我需要访问设备、收集某些数据并将其转发到本地网络上的数据流。
虽然我的应用程序执行所有需要它的功能,但它缺少功能:当我关闭正在运行应用程序的窗口时,它不会停止硬件设备。结果是,每次我完成程序时都必须进行硬件重置。这不仅不方便,而且对于程序的预期用途来说是不可能的。
我基本上只是想为一个函数设置一个回调,即在程序关闭时执行(通过单击 x、按 Alt-F4 等)
这可能吗?我可以为此类事件创建处理程序:
BOOL WINAPI ConsoleHandler(DWORD dwCtrlEvent)
{
switch (dwCtrlEvent)
{
case CTRL_CLOSE_EVENT:
// something
case CTRL_SHUTDOWN_EVENT:
// the same?
default:
return FALSE;
}
}
如果这是一个正确的方法,我想知道如何使用这个处理程序?我是否需要在我的程序中创建这样的处理程序并且不断更新?
感谢您的帮助 乔纳斯
【问题讨论】:
-
它是特定于操作系统的(但您忘记了 Windows 标签)。也许atexit(3) 可能有用,如果您的操作系统(和 C 库)提供它。
-
这是一个终端/控制台程序吗?或者你有图形用户界面吗?视觉工作室?
标签: c++ winapi eventhandler application-close function-exit