PE檔案,程式集,託管模組,元資料

2021-07-13 01:25:36 字數 391 閱讀 7299

clr實際是和程式集工作,程式集(assembly)是抽象概念

程式集:乙個或多個模組/資源檔案的邏輯性分組,是重用安全性和版本控制的最小單元。

編譯器會預設將生成的託管模組生成程式集

程式集既可以是exe,也可以是dll(其中也含有可執行的檔案)

元資料是由幾個表構成的二進位制塊,有三種元資料表:定義表,引用表和清單表。

c#編譯器生成的是含有清單(元資料的集合)的託管模組。所以,對於只有乙個託管模組而且無資源檔案的專案,程式集就是託管模組,生成過程中無需執行任何額度的步驟

判斷.net framework sdk 提供了名為clrver.exe的命令列實用程式,能列出機器上安裝的所有clr版本。還能列出機器中正在執行的程序實用的clr版本號。

CTS,CLS,託管模組,程式集,IL

il可利用所有特性,其他為其子集 cts規範描述型別的定義和行為。cts規定乙個型別可以包含 0個或多個成員。字段,方法,屬性,事件 還定義了型別可見性和訪問型別成員的一些規則 private family assembly等 cts建立了以程式集為型別可見性邊界的規則,而 clr實現了這種可見性規...

C 託管模組與程式集

當寫好了c 的源 後,c 編譯器會把源 編譯成乙個託管模組而非最終的機器語言。這個涉及到clr的相關功能,因為clr就是為了將不同的語言編寫 例如c vb 出來的源 可以更好地在不同平台使用,而不是針對某一種架構cpu進行編譯。編譯器編譯出託管模組後,最終通過jit編譯器動態實時編譯託管模組中的il...

元資料與PE檔案結構

元資料被儲存在pe檔案的乙個區域,msil則被儲存在pe檔案的另乙個區域。元資料部分包含一系列的表和堆。msil部分則包含il語言和元資料標記,這些元資料標記指向元資料部分的某個表的某行或者指向某個堆。元資料表和堆 元資料表中包含程式的各種資訊,比如,某個表描述程式中的各個類,另外乙個表描述各個類中...