程序代码如下:
// win32test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
bool g_exit = false;
const char *GetEventMessage(DWORD dwCtrlType)
{
switch ( dwCtrlType )
{
case CTRL_C_EVENT:
return "CTRL_C_EVENT";
case CTRL_BREAK_EVENT:
return "CTRL_BREAK_EVENT";
case CTRL_CLOSE_EVENT:
return "CTRL_CLOSE_EVENT";
case CTRL_LOGOFF_EVENT:
return "CTRL_LOGOFF_EVENT";
case CTRL_SHUTDOWN_EVENT:
return "CTRL_SHUTDOWN_EVENT";
}
return "Unknown";
}
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
printf("%s event received\n", GetEventMessage(dwCtrlType));
g_exit = true;
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
SetConsoleCtrlHandler( HandlerRoutine, TRUE);
while (! g_exit)
{
printf("main\n");
Sleep(5000);
}
printf("exit\n");
return 0;
}