background image

    void * DispatcherContext) 

    cout << "In the exception handler" << endl; 

    cout << "Just a demo. exiting..." << endl; 

    exit(0); 

    return ExceptionContinueExecution; //

 

不会运行到这

int  g_div = 0; 

void bar() 

    //初始化一个 EXCEPTION_REGISTRATION

 

结构

    EXCEPTION_REGISTRATION reg, *preg = ®  

    reg.handler = (DWORD)myHandler; 

    //

“ ” 

取得当前异常处理链的 头

    DWORD prev; 

    _asm 

    { 

        mov EAX, FS:[0] 

        mov prev, EAX 

    } 

    reg.prev = (EXCEPTION_REGISTRATION*) prev; 

    //

 

注册!

    _asm 

    { 

        mov EAX, preg 

        mov FS:[0], EAX 

    }