.


:




:

































 

 

 

 





:

DWORD GetExceptionCode(VOID)

. GetExceptionCode ( ). , , , , :

__except(MyFilter(GetExceptionCode())) {

}

, , . , ; , , , (FP-, FloatingPoint ), ( EXCEPTION_CONTINUE_SEARCH), ( EXCEPTION_EXECUTE_HANDLER).

, GetExceptionCode, , .

, :

EXCEPTION_ACCESS_VIOLATION , .

EXCEPTION_DATATYPE_MISALIGNMENT , , DWORD .

EXCEPTION_NONCONTINUABLE_EXECUTION EXCEPTION_CONTINUE_EXECUTION, .

, Alloc HeapCreate, HEAP_GENERATE_EXCEPTIONS (. 5). STATUS_NO_MEMORY EXCEPTION_ACCESS_VIOLATION.

, RaiseException, ", ".

( FP-), , EXCEPTION_INT_DIVIDE_BY_ZERO EXCEPTION_FLT_OVERFLOW.

, , , EXCEPTION_BREAKPOINT EXCEPTION_SINGLE_STEP.

GetExceptionInformation, , , .

LPEXCEPTION_POINTERS GetExceptionINFORMATION(VOID)

, , , EXCEPTION_POINTERS, .

typedef struct _EXCEPTION_POINTERS {

PEXCEPTION_RECORD ExceptionRecord;

PCONTEXT ContextRecord;

} EXCEPTION POINTERS;

EXCEPTION_RECORD ExceptionCode, , GetExceptionCode. ExceptionFlags EXCEPTION_RECORD 0 EXCEPTION_NONCONTINUABLE, , . ExceptionAddress ExceptionInformation. EXCEPTION_ACCESS_VIOLATION , (1) (0). .

EXCEPTION_POINTERS, , ContextRecord, , . , <winnt.h>.

:

. 4.2 , . , , . :

1. ; .

2. , . GetExceptionCode, Filter.

3. , .

4. EXCEPTION_INT_DIVIDE_BY_ZERO.

5. , , EXCEPTION_EXECUTE_HANDLER.

6. , _except.

7. try except.

. 4.2.





:


: 2015-09-20; !; : 570 |


:

:

, .
==> ...

1680 - | 1490 -


© 2015-2024 lektsii.org - -

: 0.011 .