託管代碼與非託管代碼的區別

      託管代碼(Managed Code)就是中間語言(IL)代碼,在公共語言運行庫(CLR)中運行。編譯器把代碼編譯成中間語言,當方法被調用時,CLR把具體的方法編譯成適合本地計算機運行的機器碼,並且將編譯好的機器碼緩存起來,以備下次調用使用。隨着程序集的運行,CLR提供各種服務:內存管理,安全管理,線程管理,垃圾回收,類型檢查等等。

      非託管代碼,直接編譯成目標計算機碼,由操作系統直接執行,代碼必須自己提供垃圾回收,類型檢查,安全支持等服務。如需要內存管理等服務,必須顯示調用操作系統的接口,通常調用Windows SDK所提供的API來實現內存管理。

    當項目選擇名字以MFC,ATL,Win32開頭的項目類型,那麼這個項目所產生的就是非託管程序。

發佈了48 篇原創文章 · 獲贊 14 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章