SEH的一些问题,麻烦张老师看一下。

Windows内核调试

SEH的一些问题,麻烦张老师看一下。


zyq8709 2012-07-31, 11:30 上午

在ReactOS中关于SEH有以下部分:

#define _SEH_TRY

for(;;) \
    { \
        _SEH_INIT_CONST int _SEHTopTryLevel = (_SEHScopeKind != 0); \
        _SEHPortableFrame_t * const _SEHCurPortableFrame = _SEHPortableFrame; \
        _SEHPortableTryLevel_t * const _SEHPrevPortableTryLevel = _SEHPortableTryLevel; \
     \
        { \
            _SEH_INIT_CONST int _SEHScopeKind = 0; \
            register int _SEHState = 0; \
            register int _SEHHandle = 0; \
            _SEHFrame_t _SEHFrame; \
            _SEHTryLevel_t _SEHTryLevel; \
            _SEHPortableFrame_t * const _SEHPortableFrame = \
                _SEHTopTryLevel ? &_SEHFrame.SEH_Header : _SEHCurPortableFrame; \
            _SEHPortableTryLevel_t * const _SEHPortableTryLevel = &_SEHTryLevel.ST_Header; \
    \
            (void)_SEHScopeKind; \
            (void)_SEHPortableFrame; \
            (void)_SEHPortableTryLevel; \
            (void)_SEHHandle; \
	\
			for(;;) \
            { \
                if(_SEHState) \
                { \
                    for(;;) \
                    { \
                        {
其中的 (void)_SEHScopeKind; \
            (void)_SEHPortableFrame; \
            (void)_SEHPortableTryLevel; \
            (void)_SEHHandle; \
这几句为何要进行强制类型转换,而转换后又不用,不知这几句语句有何作用呢?去掉有何影响?

Powered by Community Server Powered by CnForums.Net