[情報] 深入研究 Win32 結構化例外處理 (SEH)

看板Programming作者 (purpose)時間15年前 (2010/11/01 12:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
文章內容的完整網頁格式: 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

11/06 15:38, , 1F
win64?
11/06 15:38, 1F
文章代碼(AID): #1CpaLJIh (Programming)
文章代碼(AID): #1CpaLJIh (Programming)