我一直在用C#3.0閱讀CLR,並且一直在反思Assemblies,Modules和Headers,但事情變得複雜起來。這是我的理解,但如果將是巨大的,如果有人可以澄清的東西多一點:CLR中的模塊,程序集和頭文件
模塊是CSC.EXE的結果,其中包含IL代碼和元數據表。元數據表含有三種不同的表:
- 定義表,如 「ModuleDef,類型定義,PropertyDef,MethodDef,EventDef,FieldDef」
- 參考表,例如 「TypeRef,ModuleRef,MemberRef等。」
- 清單表**
裝配體是含有許多模塊以及資源諸如圖像,文檔,PDF等
一種代表可移植可執行文件- PE文件是文件可以是容器.EXE或.DLL。這些文件具有PE32或PE32 +頭,CLR頭,元數據,IL代碼。
的書說,議會是一個容器由模塊組成的,它也說,託管模塊是
託管模塊:
一個管理模塊是一個標準的32位Microsoft Windows便攜式 可執行(PE32)文件或標準的64位Windows便攜式 可執行文件(PE32 +)需要CLR執行。
Richter,Jeffrey(2010-02-05)。 CLR通過C#(Kindle Locations 696-697)。 OReilly Media - A. Kindle Edition。大會
定義:
的組件是一個或多個模塊或資源 文件的邏輯分組。
Richter,Jeffrey(2010-02-05)。 CLR通過C#(Kindle Locations 766-767)。 OReilly Media - A. Kindle Edition。
如此看來,託管模塊實際上是來自同一本書拍攝的圖像在大會的一部分。
PE32頭屬於組件,但是筆者還表示,它屬於管理模塊以及等
這裏有什麼分離?他爲什麼可以互換模塊和組件,即使認爲它們看起來很分離。
受管理的PE文件有四個主要部分:PE32(+)標題,CLR 標題,元數據和IL。PE32(+)標題是Windows預期的標準 信息。 CLR頭文件是 的一個小塊,特定於需要CLR的模塊(管理的 模塊)。
Richter,Jeffrey(2010-02-05)。 CLR通過C#(Kindle Locations 1628-1629)。 OReilly Media - A. Kindle Edition。
此外,圖像清楚地表明,模塊只有元數據而不是PE32(+),CLR標題等。您認爲Manifest和Metadata可以互換使用嗎?
而且還可以請你解釋**清單表中的模塊呢?
尼斯鏈接。謝謝。 – Tarik 2012-04-08 18:28:55