今天在CSDN上看到有人问关于类似QQ那样崩溃时弹出的自己的崩溃提示框(原文)想了想,挺有意思。所以自己查了一下资料写了个库,方便使用

         使用起来应该是比较简单的,但是我没有进行严格的测试,弟兄们不要扁我

         将文件中的头文件和lib文件复制到你的工程里,将两个Dll复制到执行目录或者System32目录,然后工程里用代码设定即可(不设定按默认方式:不弹出提示,而在后台记录)。一个程序只要主线程包含该头文件即可。

         例图:ExceptionUse.JPG

         上文设置出现出错提示框,和出错后要执行的命令行。如果逆向显示崩溃文件的话,将上面的设置改为:

    CString strCmdLine;
    strCmdLine 
= _T("C:\\windows\\system32\\notepad.exe ");
    strCmdLine 
+= m_gExceptionRepot.GetLogFileName();
    m_gExceptionRepot.SetErrorExcuteFile( strCmdLine );

      我们现在输入会出现异常的代码:
TestSrc.JPG

         这是一个除零异常,然后我们执行可以看到:
      ShowMessage.JPG

         在和执行文件物理路径相同的位置,出现了同名的rpt文件,它的内容是:

ReportFile.JPG

         出现详细的崩溃信息,当然前提条件是执行文件的相应路径下可以找到调试符号,否则只能看到如下信息:
ReportResFile.JPG

         看到了吧,比调试版本少了很多信息,不过没有关系,搭配map文件也能大概确定出错的位置了。

         本文用到的库文件可以在我的Blog下载。如果由于使用我的库文件出现任何问题,本人不负任何责任,如果不同意,请不要下载使用。

      库文件下载地址
posted on 2005-12-15 16:33 孤独的夜 阅读(2858) 评论(8)  编辑 收藏 引用 所属分类: VC Skill
Comments
  • # re: 如何在程序崩溃时,获取相应的信息
    dudu
    Posted @ 2005-12-15 20:37
    图片太宽了, 希望能调整一下。  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息
    孤独的夜
    Posted @ 2005-12-16 08:35
    汗~,我试过了,不知道为什么在编辑器里很正常,而显示出来的死活调整不过去。
    哪位有经验的介绍一下?  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息
    dudu
    Posted @ 2005-12-16 21:40
    在本地修改宽度后, 重新上传。  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息
    孤独的夜
    Posted @ 2005-12-16 23:26
    还是不行呀。  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息
    eiko
    Posted @ 2005-12-19 16:11
    楼主能否散出你的库的源码?  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息
    王小宇
    Posted @ 2009-04-08 15:33
    楼主你好,能把获取程序崩溃信息的源代码发给我吗?十分感谢!
    我的邮箱52828272@qq.com  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息[未登录]
    Joe
    Posted @ 2009-10-16 17:04
    楼主你好,能把获取程序崩溃信息的源代码发给我吗?十分感谢!
    我的邮箱451681592@qq.com  回复  更多评论   
  • # re: 如何在程序崩溃时,获取相应的信息[未登录]
    sunny
    Posted @ 2014-09-10 11:29
    #include <dbghelp.h>在哪??  回复  更多评论   
只有注册用户登录后才能发表评论。