私はSEH例外をキャッチし、ファイルに書き込んで、不具合報告のログを記録するための具体的な手順を提示するVisual Studio 2008 C++ Windows Mobile 6.5プロジェクトを持っていますこの問題。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ハンドラなど)に例外があると、通常の「We're Sorry ...」ダイアログが表示され、エラー処理コードが実行されません。
これらの例外をキャプチャするにはどうすればよいですか? C#.NET CFでは、Application.ThreadException
とApplication.CurrentDomain.UnhandledException
を購読します。このため。 C++に相当するものはありますか?
おかげで、 PaulH
したがって、ベクタリングされた例外処理がWindows Embedded Handheldに移植されるまで、すべてのスレッドで '__try' /' __except'ブロックが必要ですか?ナッツ。今私はMSがロードマップからWEH7を落としたのも幸せだ。それはCE6.0からのその特徴を持っていたでしょう。 – PaulH