【发布时间】:2012-06-25 17:01:21
【问题描述】:
如果用户关闭/重新启动/注销计算机,我想以编程方式检查我的应用程序。 我试图实现下面的代码,它给出了编译错误
error: invalid conversion from 'bool (*)(DWORD)' to 'BOOL (*)(DWORD)'
error: initializing argument 1 of 'BOOL SetConsoleCtrlHandler(BOOL (*)(DWORD), BOOL)'
void TestApp:: OnQuit()
{
SetConsoleCtrlHandler(HandlerRoutine, TRUE);
}
//Windows Call Back function implementation
bool WINAPI HandlerRoutine(DWORD dwCtrlType)
{
bool ret = false;
if (dwCtrlType == CTRL_LOGOFF_EVENT || dwCtrlType == CTRL_SHUTDOWN_EVENT)
//Graceful Quit
return ret;
}
我的开发环境是 QT Creator QT SDK 和 C++。
【问题讨论】:
-
BOOL不是bool。 -
这里是proof for
BOOL是typedef的int。这就是为什么使用bool不起作用的原因。 -
@chris, Kuba Ober -- 感谢您的帮助。