首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获GUI代码中的SEH异常

捕获GUI代码中的SEH异常
EN

Stack Overflow用户
提问于 2011-04-06 05:31:53
回答 1查看 598关注 0票数 0

我有一个Visual Studio2008SEHWindowsMobile6.5项目,我想在其中捕获C++异常,将它们写到一个文件中,并为用户提供关于如何记录此问题的缺陷报告的具体说明。我的代码看起来很像这样:

代码语言:javascript
复制
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异常是从主线程抛出的,则可以很好地工作。但是,如果图形用户界面代码中有异常(例如WM_CREATE处理程序),那么通常的“对不起...”对话框出现,错误处理代码永远不会执行。

我能做些什么来捕获这些异常?在C# .NET CF中,我会订阅Application.ThreadExceptionApplication.CurrentDomain.UnhandledException。为了这个。有没有C++的等价物?

谢谢,PaulH

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-06 11:02:01

窗口过程通常是间接调用的,库可能会通过在回调函数周围插入SEH异常块来保护自己,屏蔽错误并阻止它向上传播调用堆栈并返回到WinMain()

在窗口过程中添加SEH异常块,以捕获事件处理程序中发生的任何异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5558793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档