CrashRpt.dll用来在应用程序出现异常crash

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 

CrashRpt.dll用来在应用程序出现异常crash时,捕获到错误,并收集出错信息:MiniDump文件、硬件信息、系统信息、出错信息、进程信息、服务信息、驱动信息、启动信息、软件列表、端口信息、磁盘分区、WinSock LSP、IE插件、网卡信息。


使用方法

主程序入口调用InitializeCrashRpt,可以参考sdk中simpledemo。

用法1:最简单方式
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    // 先初始化CrashRpt.dll异常捕获库
    InitializeCrashRpt();
    
    char* p = NULL;
    // NULL pointer access error!
    *p = 1;
    
    return 0;
}

用法2:自定义出错后行为
BOOL WINAPI MyCrashProc(PEXCEPTION_POINTERS Exception){
    MessageBox(NULL, "我靠,出错了!", "", MB_OK|MB_ICONERROR); 
       // 生成错误时系统快照    
GenerateCrashRpt(Exception, "c:\\error.xml", CRASHRPT_ERROR|CRASHRPT_SYSTEM|CRASHRPT_PROCESS);
//CRASHRPT_ALL);       
 // 生成minidump.dmp,这个可以用vc或者windbg打开分析    
GenerateMiniDump(Exception, "c:\\minidump.dmp");        
// 用ie打开系统快照    
ShowCrashRpt(NULL, "c:\\error.xml");
        
// 发送邮件   
 SendMail(NULL, "c:\\minidump.dmp", "bug feedback", "[email protected];[email protected]");    
return EXCEPTION_EXECUTE_HANDLER;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{    
// 先初始化CrashRpt.dll异常捕获库  
InitializeCrashRptEx(MyCrashProc);    
char* p = NULL;    
// NULL pointer access error!   
 *p = 1;        
return 0;
}


 
  
 
  
 截图 
  

SDK文件说明
 
  
 
  
CrashRpt.h      头文件,编译时需要include这个文件
CrashRpt.lib    导入库,链接时需要这个文件
CrashRpt.dll    动态库,程序发布时需要这个文件
simpledemo      最简单的例子
multithreaddemo 多线程下试用例子
customdemo      自定义出错后行为的例子


你可能感兴趣的:(【原创之味】,【美之赏析】)