zoukankan      html  css  js  c++  java
  • SEH结构异常处理使用


    编译错误

    error C2712: Cannot use __try in functions that require object unwinding

    附录:

    SEH异常代码

    define in <winbase.h>

    #define WAIT_IO_COMPLETION                  STATUS_USER_APC
    #define STILL_ACTIVE                        STATUS_PENDING
    #define EXCEPTION_ACCESS_VIOLATION          STATUS_ACCESS_VIOLATION
    #define EXCEPTION_DATATYPE_MISALIGNMENT     STATUS_DATATYPE_MISALIGNMENT
    #define EXCEPTION_BREAKPOINT                STATUS_BREAKPOINT
    #define EXCEPTION_SINGLE_STEP               STATUS_SINGLE_STEP
    #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED     STATUS_ARRAY_BOUNDS_EXCEEDED
    #define EXCEPTION_FLT_DENORMAL_OPERAND      STATUS_FLOAT_DENORMAL_OPERAND
    #define EXCEPTION_FLT_DIVIDE_BY_ZERO        STATUS_FLOAT_DIVIDE_BY_ZERO
    #define EXCEPTION_FLT_INEXACT_RESULT        STATUS_FLOAT_INEXACT_RESULT
    #define EXCEPTION_FLT_INVALID_OPERATION     STATUS_FLOAT_INVALID_OPERATION
    #define EXCEPTION_FLT_OVERFLOW              STATUS_FLOAT_OVERFLOW
    #define EXCEPTION_FLT_STACK_CHECK           STATUS_FLOAT_STACK_CHECK
    #define EXCEPTION_FLT_UNDERFLOW             STATUS_FLOAT_UNDERFLOW
    #define EXCEPTION_INT_DIVIDE_BY_ZERO        STATUS_INTEGER_DIVIDE_BY_ZERO
    #define EXCEPTION_INT_OVERFLOW              STATUS_INTEGER_OVERFLOW
    #define EXCEPTION_PRIV_INSTRUCTION          STATUS_PRIVILEGED_INSTRUCTION
    #define EXCEPTION_IN_PAGE_ERROR             STATUS_IN_PAGE_ERROR
    #define EXCEPTION_ILLEGAL_INSTRUCTION       STATUS_ILLEGAL_INSTRUCTION
    #define EXCEPTION_NONCONTINUABLE_EXCEPTION  STATUS_NONCONTINUABLE_EXCEPTION
    #define EXCEPTION_STACK_OVERFLOW            STATUS_STACK_OVERFLOW
    #define EXCEPTION_INVALID_DISPOSITION       STATUS_INVALID_DISPOSITION
    #define EXCEPTION_GUARD_PAGE                STATUS_GUARD_PAGE_VIOLATION
    #define EXCEPTION_INVALID_HANDLE            STATUS_INVALID_HANDLE
    #define EXCEPTION_POSSIBLE_DEADLOCK         STATUS_POSSIBLE_DEADLOCK
    #define CONTROL_C_EXIT                      STATUS_CONTROL_C_EXIT
    具体对应的值定义在<winnt.h>

    #define STATUS_WAIT_0                    ((DWORD   )0x00000000L)    
    #define STATUS_ABANDONED_WAIT_0          ((DWORD   )0x00000080L)    
    #define STATUS_USER_APC                  ((DWORD   )0x000000C0L)    
    #define STATUS_TIMEOUT                   ((DWORD   )0x00000102L)    
    #define STATUS_PENDING                   ((DWORD   )0x00000103L)    
    #define DBG_EXCEPTION_HANDLED            ((DWORD   )0x00010001L)    
    #define DBG_CONTINUE                     ((DWORD   )0x00010002L)    
    #define STATUS_SEGMENT_NOTIFICATION      ((DWORD   )0x40000005L)    
    #define DBG_TERMINATE_THREAD             ((DWORD   )0x40010003L)    
    #define DBG_TERMINATE_PROCESS            ((DWORD   )0x40010004L)    
    #define DBG_CONTROL_C                    ((DWORD   )0x40010005L)    
    #define DBG_PRINTEXCEPTION_C             ((DWORD   )0x40010006L)    
    #define DBG_RIPEXCEPTION                 ((DWORD   )0x40010007L)    
    #define DBG_CONTROL_BREAK                ((DWORD   )0x40010008L)    
    #define DBG_COMMAND_EXCEPTION            ((DWORD   )0x40010009L)    
    #define STATUS_GUARD_PAGE_VIOLATION      ((DWORD   )0x80000001L)    
    #define STATUS_DATATYPE_MISALIGNMENT     ((DWORD   )0x80000002L)    
    #define STATUS_BREAKPOINT                ((DWORD   )0x80000003L)    
    #define STATUS_SINGLE_STEP               ((DWORD   )0x80000004L)    
    #define STATUS_LONGJUMP                  ((DWORD   )0x80000026L)    
    #define STATUS_UNWIND_CONSOLIDATE        ((DWORD   )0x80000029L)    
    #define DBG_EXCEPTION_NOT_HANDLED        ((DWORD   )0x80010001L)    
    #define STATUS_ACCESS_VIOLATION          ((DWORD   )0xC0000005L)    
    #define STATUS_IN_PAGE_ERROR             ((DWORD   )0xC0000006L)    
    #define STATUS_INVALID_HANDLE            ((DWORD   )0xC0000008L)    
    #define STATUS_INVALID_PARAMETER         ((DWORD   )0xC000000DL)    
    #define STATUS_NO_MEMORY                 ((DWORD   )0xC0000017L)    
    #define STATUS_ILLEGAL_INSTRUCTION       ((DWORD   )0xC000001DL)    
    #define STATUS_NONCONTINUABLE_EXCEPTION  ((DWORD   )0xC0000025L)    
    #define STATUS_INVALID_DISPOSITION       ((DWORD   )0xC0000026L)    
    #define STATUS_ARRAY_BOUNDS_EXCEEDED     ((DWORD   )0xC000008CL)    
    #define STATUS_FLOAT_DENORMAL_OPERAND    ((DWORD   )0xC000008DL)    
    #define STATUS_FLOAT_DIVIDE_BY_ZERO      ((DWORD   )0xC000008EL)    
    #define STATUS_FLOAT_INEXACT_RESULT      ((DWORD   )0xC000008FL)    
    #define STATUS_FLOAT_INVALID_OPERATION   ((DWORD   )0xC0000090L)    
    #define STATUS_FLOAT_OVERFLOW            ((DWORD   )0xC0000091L)    
    #define STATUS_FLOAT_STACK_CHECK         ((DWORD   )0xC0000092L)    
    #define STATUS_FLOAT_UNDERFLOW           ((DWORD   )0xC0000093L)    
    #define STATUS_INTEGER_DIVIDE_BY_ZERO    ((DWORD   )0xC0000094L)    
    #define STATUS_INTEGER_OVERFLOW          ((DWORD   )0xC0000095L)    
    #define STATUS_PRIVILEGED_INSTRUCTION    ((DWORD   )0xC0000096L)    
    #define STATUS_STACK_OVERFLOW            ((DWORD   )0xC00000FDL)    
    #define STATUS_DLL_NOT_FOUND             ((DWORD   )0xC0000135L)    
    #define STATUS_ORDINAL_NOT_FOUND         ((DWORD   )0xC0000138L)    
    #define STATUS_ENTRYPOINT_NOT_FOUND      ((DWORD   )0xC0000139L)    
    #define STATUS_CONTROL_C_EXIT            ((DWORD   )0xC000013AL)    
    #define STATUS_DLL_INIT_FAILED           ((DWORD   )0xC0000142L)    
    #define STATUS_FLOAT_MULTIPLE_FAULTS     ((DWORD   )0xC00002B4L)    
    #define STATUS_FLOAT_MULTIPLE_TRAPS      ((DWORD   )0xC00002B5L)    
    #define STATUS_REG_NAT_CONSUMPTION       ((DWORD   )0xC00002C9L)    
    #define STATUS_STACK_BUFFER_OVERRUN      ((DWORD   )0xC0000409L)    
    #define STATUS_INVALID_CRUNTIME_PARAMETER ((DWORD   )0xC0000417L)    
    #define STATUS_ASSERTION_FAILURE         ((DWORD   )0xC0000420L)    
    #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) 
    #define STATUS_SXS_EARLY_DEACTIVATION    ((DWORD   )0xC015000FL)    
    #define STATUS_SXS_INVALID_DEACTIVATION  ((DWORD   )0xC0150010L) 






  • 相关阅读:
    CSP介绍、以及使用CryptoAPI枚举CSP并获取其属性
    Data Binding Guide——google官方文档翻译(下)
    ZOJ 3430 Detect the Virus 【AC自动机+解码】
    Visual Studio 中 Tab 转换为空格的设置
    梭子鱼:APT攻击是一盘更大的棋吗?
    APT攻击将向云计算平台聚焦
    【转】ubuntu修改IP地址和网关的方法
    程序员谈学习:我为什么要学习Linux?
    VS2010 快捷键
    Visual Assist X 10.6.1837完美破解版(带VS2010破解)
  • 原文地址:https://www.cnblogs.com/rogerroddick/p/2846694.html
Copyright © 2011-2022 走看看