隱藏未知程序崩潰的Window API

原文:https://blog.csdn.net/ren65432/article/details/45395461 

windows提供了一個如下函數:

LPTOP_LEVEL_EXCEPTION_FILTER
WINAPI
SetUnhandledExceptionFilter(
    __in_opt LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
    );

由MSDN我們可以知道:當前進程中發送任何異常時,SetUnhandledExceptionFilter都能捕獲到,並將調用lpTopLevelExceptionFilter回調函數。所以在異常發送時,我們可以在lpTopLevelExceptionFilter中做我們想做的事。

LONG CallBackCrashHandler(EXCEPTION_POINTERS *pException)  
{   
	// 這裏你可以做一個漂亮的界面或者其他
	MessageBox(NULL,L"崩潰了...",L"錯誤",MB_OK);
	return EXCEPTION_EXECUTE_HANDLER;  
}  
 
 
int _tmain(int argc, _TCHAR* argv[])  
{  
	// 設置處理Unhandled Exception的回調函數  
	SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)CallBackCrashHandler); 
	return 0;  
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章