捕获控制台等异常

捕获控制台等异常

#define  WIN32_LEAN_AND_MEAN   
#include 
< windows.h >
#include 
< tchar.h >
#include 
< iostream >
#include 
< signal.h >


BOOL WINAPI ConsoleHandler(DWORD dwCtrlType );
                           
                          

int  main( int  argc,  char   * argv[])
{
    
if  (SetConsoleCtrlHandler( (PHANDLER_ROUTINE)ConsoleHandler,TRUE) == FALSE)
    {
        
//  unable to install handler 
        
//  display message to the user
        printf( " Unable to install handler!\n " );
        
return   - 1 ;
    }


    
while ( true )
    {

    }
}

BOOL WINAPI ConsoleHandler(DWORD CEvent)
{
    
char  mesg[ 128 ];

    
switch (CEvent)
    {
    
case  CTRL_C_EVENT:
        MessageBox(NULL,
            _T(
" CTRL+C received! " ),_T( " CEvent " ),MB_OK);
        
break ;
    
// case CTRL_BREAK_EVENT:
    
//     MessageBox(NULL,
    
//         _T("CTRL+BREAK received!"),_T("CEvent"),MB_OK);
    
//     break;
    
// case CTRL_CLOSE_EVENT:
    
//     MessageBox(NULL,
    
//         _T("Program being closed!"),_T("CEvent"),MB_OK);
    
//     break;
    
// case CTRL_LOGOFF_EVENT:
    
//     MessageBox(NULL,
    
//         _T("User is logging off!"),_T("CEvent"),MB_OK);
    
//     break;
    
// case CTRL_SHUTDOWN_EVENT:
    
//     MessageBox(NULL,
    
//         _T("User is logging off!"),_T("CEvent"),MB_OK);
    
//     break;
    }
    
return  TRUE;
}

你可能感兴趣的:(捕获控制台等异常)