2010-10-12 144 views
0

我想知道,如果C#.NET是託管語言,爲什麼它會產生.dll文件而不是某些.mdll或其他?或者是編譯爲本地代碼的dll?這甚至有可能嗎?我的意思是,有DLL的witj調用託管庫?謝謝。C#dll文件編譯

回答

1

該庫包含一個標題,表明它是託管代碼。此外,實際的機器代碼由JIT編譯器在運行時動態生成。

0

因爲DLL實際上有一些非託管代碼和導入表,也因爲不需要多一種文件格式。

至於編譯 - 託管程序集編譯爲安裝到GAC並加載的計算機上的本機代碼。查詢"ngen"瞭解更多信息。

1

dll只是一個文件擴展名,但內部存儲的數據在管理的&本機中完全不同。

而且dll沒有編譯爲本機代碼,編譯爲與機器無關的MSIL代碼。

要從本機調用受管dll,必須使您的程序集COM可見。