隱藏未知程式崩潰
阿新 • • 發佈:2018-11-13
原文: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; }