C#溫故而知新學習系列之.NET運行機制—2-.NET中非託管代碼是指什麼?

        在講非託管代碼這個概念的時候,我們先提幾個涉及到的概念

  我們“在解釋執行和編譯執行的區別?” 一文中講到機器碼的概念,機器碼是指機器語言(machine language)是一種指令集的體系,這種指令集,稱機器碼(machine code),是電腦的CPU可直接解讀的

  CLR是.NET中的公共語言運行庫,也就是說.aspx頁面是通過CLR進行編譯成dll文件的,因爲aspx頁面可以用C#/VB.NET/J#等多種語言編寫代碼,不管那種語言編寫的代碼都是通過CLR編譯後生成同樣的dll文件

  非託管代碼

  非託管代碼是指直接編譯成目標計算機的機器碼,這些機器碼只能運行在編譯出這些代碼的機器上,或者其他相同處理器或者幾乎一樣處理器的機器上

  非託管代碼不能享受公共語言運行庫CLR所提供的一些服務,如內存管理,安全管理,如果非託管代碼需要進行內存管理等服務,那就必須顯式的調用操作系統的接口,通常非託管代碼調用Windows SDK所提供的API來實現內存管理

  非託管代碼不由公共語言運行庫CLR運行,而是由操作系統直接執行的代碼,非託管代碼必須自己提供垃圾回收,安全支持等服務

每天學習一點點,每天進步一點點 用文字記錄工作,用文字記錄人生
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章