try-throw-catch&&windows异常处理

C++的异常处理和windows的异常处理一点关系也没有,以下代码可以说明

代码
#include  < iostream.h >
#include 
< windows.h >
LONG WINAPI myfi(LPEXCEPTION_POINTERS t)
{
    DWORD p;
    _asm
    {
        call l1
l1:
        pop eax
        mov p,eax
    }
    cout
<< " 1: " << hex << p << endl;
    
return  EXCEPTION_EXECUTE_HANDLER;
}
void  main()
{
    LPTOP_LEVEL_EXCEPTION_FILTER old;
// 如果把这里去掉程序就报错了
    old = ::SetUnhandledExceptionFilter(myfi); // 如果把这里去掉程序就报错了
     try
    {
        _asm
        {
            mov eax,
0
            mov ebx,
1
            mov [eax],ebx
        }
    }
    
catch (DWORD e)
    {
        DWORD p;
        _asm
        {
            call l1
l1:
            pop eax
            mov p,eax
        }
        cout
<< " 2: " << hex << p << endl;
    }
}

 使用SetUnhandledExceptionFilter设置的异常OD没法跟踪吗?

 

你可能感兴趣的:(windows)