C 之託管模組

2021-04-09 07:14:56 字數 667 閱讀 4999

託管模組的定義:託管模組是乙個需要clr才能夠執行的標準windows可移植可執行檔案。(portalbe   executable 簡稱pe)。

託管模組的生成過程:使用clr支援的程式語言,編寫源**檔案。然後使用該語言的編譯器進行語法分析和語義分析,然後生成託管**。

託管模組的結構:

1.pe表頭的資訊:

乙個字段指出了檔案的型別: gui,cui或者 dll。(這裡的dll特指.net中程式集檔案的乙個形式。)

乙個表示時間標記的字段:表示檔案建立的時間。

其他資訊在當託管模組中只包含il**時,將會被忽略。

當模組中包含本地cpu**時,表頭還會有關於本地cpu**的一些資訊。

2.clr表頭 :

託管模組所需要的clr版本號

一些標記

託管模組入口點方法的methoddef元資料標記

關於託管模組的元資料、資源、強命名、標記和其他一些資訊的位置和尺寸

3.元資料:

元資料**的集合。

元資料**分為兩種:一種用於描述源**中定義的型別和成員;一種用於描述源**中引用的型別和                  成員。

元數**還有一中清單表。

4.中間語言**:

編譯器在編譯源**時產生的指令。clr在執行會將il**編譯成本地cpu指令。

C 託管模組與程式集

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

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

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

c 託管非託管Dll動態呼叫

最近經常看到有人問託管非託管dll呼叫的問題。對於動態庫的呼叫其實很簡單。網上很多 都實現了dll的靜態呼叫方法。我主要談論下動態庫的動態載入。對於託管動態庫,實現動態載入很簡單。files dwwwing dlldemo.rar code assembly.loadfile filepath 這裡...