作者purpose (purpose)
看板Programming
标题[情报] 深入研究 Win32 结构化例外处理 (SEH)
时间Mon Nov 1 12:42:57 2010
文章内容的完整网页格式:
http://www.mediafire.com/?euzej6fo0djj6k8
http://www.megaupload.com/?d=FZAX3YZX
观看方法:
解压缩到任意目录,假设「D:\」,执行「D:\20101101013730\index.html」。
如果有安装 ScrapBook Plus (1.8.17.31),使用汇入功能,
汇入资料夹选择 D:\ 即可汇入文章。
=========================================================================
内文摘录
就像人们常说的那样,Win32 结构化例外处理(SEH)是一个作业系统提供的服务。
那些你能找到的,所有关於 SEH 的文件,讲的都是基於特定编译器的程式库包装。我将
从 SEH 的最基本概念讲起。
Matt Pietrek 原着; 董岩 译简体中文; Victor 转载自 Xfocus 版并整理;
○○○ 转载自 Victor 版繁体化及整理
在所有 Win32 作业系统提供的机制中,使用最广泛的未公开的机制恐怕就要数结构
化例外处理(structured exception handling,SEH)了。一提到结构化例外处理,可能
就会令人想起 _try、_finally 和 _except 之类的术语。在任何一本不错的 Win32 书中
都会有对 SEH 详细的介绍。甚至连 Windows SDK 里面,都对使用 _try、_finally 和
_except 进行 SEH 作了完整的介绍。既然有这麽多地方都提到了 SEH,那我为什麽还要
说它是未公开的呢?本质上讲,Win32 结构化例外处理是作业系统提供的一种服务,各家
编译器的 Runtime Library 都对其做了包装,而至今看到的那些介绍 SEH 的文件,只是
针对特定编译器的 Runtime Library 而已。关键字 _try、_finally 和 _except 并没有
什麽神秘的。微软的 OS 和编译器定义了这些关键字以及它们的行为。其它的 C++ 编译
器厂商也只需要遵从它们定好的语义就行了。当编译器的 SEH 层减少了直接使用纯作业
系统的 SEH 所带来危害的同时,也将作业系统原始的 SEH 从大家的面前隐藏了起来。
.
.
.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.134.106
1F:推 subnet:win64?111.240.218.226 11/06 15:38