用的QQ都知道,如果QQ发生崩溃,QQ就会弹出一个自己的崩溃提示窗口,然后你可以点发送把崩溃信息发给软件开发商,替代了windows自带的Dr.Watson调试工具。
哪位达人懂啊,最好能给兄弟个源码。
  E-Mail: [email protected]

解决方案 »

  1.   

    用的次数少,所以我的QQ没有UP
      

  2.   

    会不会在catch()时处理了这些异常,然后自动发邮件的呢
      

  3.   

    会不会是创建一个守候进程,定时用GetExitCodeProcess得到QQ进程的退出码来实现的?
    如果非正常退出就提示.
      

  4.   

    windows核心编程里有的,结构化异常处理。SetUnhandledExceptionFilter
      

  5.   

    lightwell(大道不过两三行)说的是正解。
    MSDN上的BugLayer有例子好像是Jeffry的,你可以去找一下。
      

  6.   

    编译程序的时候,不对代码进行优化,然后在代码中使用
    try{}catch (...){}
    就可以捕获异常了。
    例如:
    try{
    char *p = 0;
    strcpy(p, "this is a test");
    }
    catch (...)
    {
       MessageBox(0, "catch an error.", 0, MB_OK);
    }
    记住一定要把代码优化禁用,否则catch无效。
      

  7.   


    ///////////////////////////////
    #include "PSErrDlg.h"
    LONG WINAPI MyExceptionFun(struct _EXCEPTION_POINTERS *ExceptionInfo )
    {
    CPSErrDlg dlg;
    dlg.DoModal();
    return EXCEPTION_EXECUTE_HANDLER; // 直接退出程序
    //return EXCEPTION_CONTINUE_EXECUTION; // 好像是递归调用了自己的异常处理
    //return EXCEPTION_CONTINUE_SEARCH; // 继续处理异常
    }extern"C" __declspec(dllexport)  void WINAPI InitErrHandle()
    {
    /*
    //////////////////////////////////////////////////////////////////////////
    // DetourFunctionWithTrampoline 作用 //
    // 1. 保存被修改的入口代码 --> Trampoline 函数中 //
    // 2. 修改目标函数入口(接管目标函数) //
    //////////////////////////////////////////////////////////////////////////
    // before Detouring a Function (此时三个函数[Target ,Trampoline, Detour]都是正常的状态,状态见 detour ppt 文档)
      DetourFunctionWithTrampoline((PBYTE)trampoline_MyFun,(PBYTE)MyFunDetour);
    */ ////////////////////////////////////////////
    SetUnhandledExceptionFilter(MyExceptionFun);
    /*
    typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(
        struct _EXCEPTION_POINTERS *ExceptionInfo
        );
    */
    }extern"C"  __declspec(dllexport)  void WINAPI ReleaseErrHandle()
    {
    // DetourRemove((PBYTE)trampoline_MyFun,(PBYTE)MyFunDetour); SetUnhandledExceptionFilter(NULL);
    }
      

  8.   

    问题以解决,感谢个位的帮助。哪儿位知道,怎么把崩溃时的信息写入文件。有例子给我发一份,十分感谢。[email protected]