0
我有一個Visual Studio 2008 C++ Windows Mobile 6.5項目,我想要捕獲SEH異常,將它們寫入文件並向用戶提供有關如何記錄缺陷報告的具體說明這個問題。我的代碼看起來非常像這樣:在GUI代碼中捕獲SEH異常
static int WriteDump(struct _EXCEPTION_POINTERS* ep)
{
// code to write info to a file
return EXCEPTION_EXECUTE_HANDLER;
}
int WINAPI _tWinMain(HINSTANCE hInstance,
HINSTANCE /*hPrevInstance*/,
LPTSTR lpstrCmdLine,
int nCmdShow)
{
int result = 0;
__try
{
result = StartMyGuiApp(hInstance, lpstrCmdLine, nCmdShow);
}
__except(WriteDump(GetExceptionInformation()))
{
// empty
}
return 0;
}
如果SEH異常是從主線程拋出這工作得很好。但是,如果GUI代碼中存在異常(例如WM_CREATE處理程序),則會出現通常的「我們很抱歉...」對話框,並且我的錯誤處理代碼從不執行。
我能做些什麼來捕捉這些異常?在C#.NET CF中,我將訂閱Application.ThreadException
和Application.CurrentDomain.UnhandledException
。爲了這。有沒有C++的等價物?
謝謝, PaulH
因此,我需要'__try' /'__except'塊在每個線程中,直到vectored異常處理移植到Windows Embedded Handheld?堅果。現在我更加高興MS從路線圖中放棄了WEH7。它將具有CE6.0的這一特性。 – PaulH 2011-04-06 17:47:23