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没法跟踪吗?

 

posted @ 2010-05-09 21:26  认真做人,认真做事  阅读(451)  评论(0编辑  收藏  举报