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