SEH结构化异常之VEH继续处理程序的问题

WINDOW核心编程,讲SEH结构化处理时,有一个[继续处理程序]的技术

是向量化异常处理(VEH)的一种技术

在当指令代码抛出SEH异常时,如果没有找到__except异常过滤程序,就变成了[未处理异常],这时会调用SetUnhandledExceptionFilter函数设置的[全局异常过滤程序]

如果[全局异常过滤程序]返回EXCEPTION_CONTINUE_SEARCH,最后代表交给Window处理

WINDOW核心编程说[继续处理程序]技术在[全局异常过滤程序]之后,已安装的[继续处理异常函数]会依次调用

问题就来了,这段代码为什么没有调用已安装的[继续处理异常函数]?

  1. char* w = NULL;
    //全局异常处理函数
    LONG WINAPI Error(_EXCEPTION_POINTERS *ExceptionInfo)
    {
    printf("Error...\r\n");
    getchar();
    return EXCEPTION_CONTINUE_SEARCH;
    }
    //已安装的继续处理异常函数1
    LONG NTAPI Func1(PEXCEPTION_POINTERS ExceptionInfo)
    {
    printf("Func2\r\n");
    getchar();
    return EXCEPTION_CONTINUE_SEARCH;
    }
    //已安装的继续处理异常函数2
    LONG NTAPI Func2(PEXCEPTION_POINTERS ExceptionInfo)
    {

    printf("Func2\r\n");
    return EXCEPTION_CONTINUE_SEARCH;
    }
    //主函数
    int _tmain()
    {
    //更改为自己定义的全局异常处理函数
    SetUnhandledExceptionFilter(Error);
    //安装继续处理异常函数
    PVOID p1 = AddVectoredContinueHandler(0, Func1);
    PVOID p2 = AddVectoredContinueHandler(0, Func2);
    //SEH结构化异常
    __try
    {
    *w = 's';
    }//不处理,交给全局函数处理
    __except(EXCEPTION_CONTINUE_SEARCH)
    {
    printf("c/c++\r\n");
    }
    getchar();
    return 0;
    }

已解决,换了一台电脑再测试代码就好了,不知道啥情况