Смежный вопрос здесь
, но он не работает для меня, когда я нажимаю 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;
}