你这个异常需要使用 SetUnhandledExceptionFilter 来捕获

解决方案 »

  1.   

    内存访问违规等直接会崩,无法catch到
      

  2.   

    看一下这些函数的说明,这些函数应该 都没有抛出异常,没有东西可以捕捉!函数应该有使用throw抛出异常,你才能捕捉,你那几个函数都是C的函数,c的语法是没有throw关键字的
      

  3.   


    不是吧,这几句代码加上/EHa选项后,除以0是可以被捕捉的
      

  4.   


    我按钮代码不变,加上这2处,问题依旧啊
    long WINAPI handler(EXCEPTION_POINTERS* lpExceptionInfo) //
    {
    AfxMessageBox("An error occurred in software and need to close, please check the FRS file using GalaxyFormCheck first!");

    return EXCEPTION_EXECUTE_HANDLER;
    }BOOL CTest004Dlg::OnInitDialog()
    {
    SetUnhandledExceptionFilter(handler);
    }
      

  5.   

    不是这样加的,你可以使用电驴开源代码里的 mdump.c mdump.h 实现程序异常捕获
      

  6.   

    http://www.codeproject.com/Articles/154686/SetUnhandledExceptionFilter-and-the-C-C-Runtime-Li
      

  7.   

    Structured Exception Handling 异常扑捉
      

  8.   

    实际上异常代码可以这么写:
    char qq[5];
    memcpy(qq, "111", -3);
      

  9.   

    pTemp2 = strchr(Contents, '-');      
    if(pTemp2 != NULL)
    {
    qq = strchr(Contents, ':') - (pTemp2+1);
    memcpy(RecordNum, pTemp2+1, qq); 
      

  10.   

    qq = strchr(Contents, ':') - (pTemp2+1);
    这句也有问题
    strchr 可能返回 NULL,必须判断
      

  11.   

    memcpy 的参数是 size_t, -3将是一个很大的值用高版本的memcpy_s 可以用 _set_invalid_parameter_handler 捕获异常参数