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

来源:互联网 发布:电脑弹钢琴的软件知乎 编辑:程序博客网 时间:2024/06/05 15:24

    欢迎加入我们的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", "abc@live.cn;test@live.cn");    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      自定义出错后行为的例子


原创粉丝点击