今天在CSDN上看到有人问关于类似QQ那样崩溃时弹出的自己的崩溃提示框(
原文)想了想,挺有意思。所以自己查了一下资料写了个库,方便使用
使用起来应该是比较简单的,但是我没有进行严格的测试,弟兄们不要扁我
![](/Emoticons/red_smile.gif)
将文件中的头文件和lib文件复制到你的工程里,将两个Dll复制到执行目录或者System32目录,然后工程里用代码设定即可(不设定按默认方式:不弹出提示,而在后台记录)。一个程序只要主线程包含该头文件即可。
例图:
![ExceptionUse.JPG](/images/cnitblog_com/wangk/ExceptionReport/ExceptionUse.JPG)
上文设置出现出错提示框,和出错后要执行的命令行。如果逆向显示崩溃文件的话,将上面的设置改为:
CString strCmdLine;
strCmdLine = _T("C:\\windows\\system32\\notepad.exe ");
strCmdLine += m_gExceptionRepot.GetLogFileName();
m_gExceptionRepot.SetErrorExcuteFile( strCmdLine );
我们现在输入会出现异常的代码:
![TestSrc.JPG](/images/cnitblog_com/wangk/ExceptionReport/TestSrc.JPG)
这是一个除零异常,然后我们执行可以看到:
![ShowMessage.JPG](/images/cnitblog_com/wangk/ExceptionReport/ShowMessage.JPG)
在和执行文件物理路径相同的位置,出现了同名的rpt文件,它的内容是:
![ReportFile.JPG](/images/cnitblog_com/wangk/ExceptionReport/ReportFile.JPG)
出现详细的崩溃信息,当然前提条件是执行文件的相应路径下可以找到调试符号,否则只能看到如下信息:
![ReportResFile.JPG](/images/cnitblog_com/wangk/ExceptionReport/ReportResFile.JPG)
看到了吧,比调试版本少了很多信息,不过没有关系,搭配map文件也能大概确定出错的位置了。
本文用到的库文件可以在我的Blog下载。如果由于使用我的库文件出现任何问题,本人不负任何责任,如果不同意,请不要下载使用。
库文件
下载地址