CrashRpt开源代码使用详解(一):CrashRpt介绍及简单应用
1、简介
CrashRpt是一个开源的第三方软件包,如果程序出现未处理的异常,可以收集错误消息并生成程序错误报告。 CrashRpt允许您将报告发送给开发人员,并以指定的方式(如HTTP或SMTP )本地保存报告。 也可以分析生成的错误报告,以确定错误的位置并确定错误的原因。
2、CrashRpt源码结构
CrashRpt开源代码主要分为三个部分。
(1)用于阻止CrashRpt )程序未处理的异常,生成MiniDump文件,并将其与使用该库指定的信息(例如日志文件、截图等)打包到错误报告中
(2) CrashSender )用于以指定方式(HTTP、SMTP或MAPI )发送或存储生成的错误报告。
)3) CrashRptProbe )用于在后台接收和分析错误报告,并以文本形式输出程序异常信息。
3、简单应用
以下是CrashRpt简单APP应用程序的示例代码。
//install crash报告
CR_INSTALL_INFO info;
短信(info,0,sizeof ) Cr_install_info );
info.CB=sizeof(Cr_install_info ); //Sizeof the structure
info.pszappname=_t(appname ); //App name
info.pszappversion=_t('1.0.0); //Appversion
info.pszerrorreportsavedir=_ t (crash report );
info.pszemailsubject=_ t (crash report ); //Email subject
info.pszUrl=url;
info.uPriorities[CR_HTTP]=3;
info.uPriorities[CR_SMTP]=2;
info.uPriorities[CR_SMAPI]=1;
info.dwflags|=Cr _ inst _ all _ possible _ handlers;
info.dwflags|=Cr _ inst _ app _ restart;
info.pszrestartcmdline=_ t (/restart );
intninstresult=Crinstall(info;
//Check result
if(Ninstresult!=0)
{
TCHAR buff[512];
crgetlasterrormsg(buff,512; //Get last error
_tprintf(_t ) ' %s(n )、buff ); //and output it to the screen
返回1;
}
//Crash
int a=0;
int b=1/a;
//Uninstall
# if定义(use _ crash RPT ) )。
crUninstall (;
#endif
返回0;