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

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

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

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


  1. 使用方法

    主程序入口调用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;
    }


  2. 截图

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


你可能感兴趣的:(exception,null,Crash,winapi,Pointers)