【发布时间】:2020-01-28 16:32:48
【问题描述】:
相关问题是here
但这对我不起作用,当我按 CTRL + C 调试器发出“未处理的事件”时,仅关闭控制台可以正常工作,但 CTRL + C 却不行,我的代码有什么问题?
代码如下:
#include <windows.h>
#include <iostream>
BOOL WINAPI consoleHandler(DWORD signal) noexcept
{
switch (signal)
{
case CTRL_C_EVENT:
ExitProcess(0); // not working
case CTRL_BREAK_EVENT:
break;
case CTRL_CLOSE_EVENT:
ExitProcess(0); // this works
case CTRL_LOGOFF_EVENT:
case CTRL_SHUTDOWN_EVENT:
break;
}
return TRUE;
}
int main()
{
if (!SetConsoleCtrlHandler(consoleHandler, TRUE))
{
std::cout << "ERROR: Could not set control handler" << std::endl;
return EXIT_FAILURE;
}
DoSomeWork();
std::cin.get();
return 0;
}
【问题讨论】: