我的一个程序部署到现场后,软件运行过程中经常会出现异常,弹出异常窗口,显示“应用程序正常初始化失败...”。我在程序中已经调用SetUnhandledExceptionFilter函数试图捕捉所有的异常了,但从运行情况来看,此函数还是不能捕捉到所有的异常。请问,有么有什么办法,能确保程序异常时所有的异常都能被捕捉到。注:我的程序是基于MFC开发的,SetUnhandledExceptionFilter使用上也是没有问题的,我做过测试。

解决方案 »

  1.   

    SetUnhandledExceptionFilter这个是强制注册崩溃回调函数。我也是用这个来执行MiniDumpWriteDump的,输出dump文件。另外可以附加点自己当时整个系统的状况,GetProcessMemoryInfo。
      

  2.   

    我的程序需要长时间稳定运行,但程序里面调用了第三方的库,有时可能会有异常发生,我希望能捕捉到所有异常,可是从实际运行情况来看,有些异常SetUnhandledExceptionFilter函数还是捕捉不到啊。
      

  3.   

    第三方库的话封装成EXE还是组件了?这个的话就比较麻烦了。而且如果第三方库崩溃的话,你无能为力的。
      

  4.   

    显示“应用程序正常初始化失败...”  ==> 这是启动程序时报的错啊?LZ的程序是不断启动不断退出吗?估计你的程序都没有启动成功,所以SetUnhandledExceptionFilter当然无效了。
      

  5.   

    应用程序正常初始化失败初始化失败, 还没初始化, 里面的任何代码都没执行, 
    这个问题检查下运行环境如 VCRediest之类的