回答
託管代碼是虛擬機下運行的代碼由另一程序(C#例如),換句話說,它的存儲器被「管理」。
非託管代碼在底層架構上運行,無需虛擬機,但可能需要運行時庫。 (C例如)
進一步閱讀:http://en.wikipedia.org/wiki/Managed_code
哎呦,繼承人Duplicate。
託管代碼由.NET運行時運行。因此CLR處理內存管理(又名垃圾收集)。託管的二進制文件位於IL代碼中。該代碼不直接被CPU理解,而是由CLR解釋爲CPU。任何具有CLR的環境都可以運行託管程序集。
非託管代碼只是定期編譯的代碼。 CPU直接理解的一系列ASM指令。運行速度更快,但支持框架更少,而且在出生時只限於一組可能運行的CPU。
有一天我聽到了一個相當不錯的故事。如果原來的人來了,看到這個,我會信任他。我不確定他是否會要我放棄他的名字。
非託管代碼: 想象一下一些真正扯平的戰士。他們有完全免費的統治。他們可以做任何他們想做的事,然後去任何他們需要的地方。唯一的問題是,他們在任何地方嘔吐。他們嘔吐整個地方,並將其拖入不應有的地方。這是C/C++等。
託管代碼: 這些傢伙是遠親。更精緻。但幾乎沒有那麼合適和意味。事實上,他們在體重方面略有下降。他們不允許跑到他們想要的地方。事實上,有一個邊界將他們留在他們的小玩具筆中。他們也是糞便,但他們是尿布,所以他們不會到處都是糞便。通常一個小傢伙來清理他們的尿布。這是Java。
大便顯然是記憶。邊界是虛擬機。小傢伙是垃圾收集者。
我只是不記得攜帶功能是如何進入這個故事。
我也對隨便的評論說,.NET和MFC程序員可以在餐桌上區分開來,因爲MFC程序員不希望菜餚自己消失。 – Tormod 2009-05-19 08:55:17
- 1. 什麼是託管代碼和非託管代碼?
- 2. 託管代碼與非託管代碼
- 3. 託管代碼在非託管
- 4. MEF和非託管代碼
- 5. .NET中的託管代碼和非託管代碼
- 6. 調試託管代碼和非託管代碼
- 7. 託管和非託管堆
- 8. 託管和非託管DLL之間有什麼區別
- 9. 允許託管環境中的託管代碼回撥非託管代碼
- 10. 如何使用託管代碼從非託管代碼?
- 11. 從非託管代碼獲取值到託管代碼
- 12. 在調試託管代碼時調試非託管代碼
- 13. 更改託管代碼中非託管代碼的內存值
- 14. 使用託管代碼中的非託管代碼
- 15. 通多 - 從託管代碼維數組非託管代碼
- 16. 從託管代碼調用非託管代碼的性能
- 17. C++ cli從非託管代碼調用託管代碼
- 18. 將非託管C++代碼編譯爲託管代碼
- 19. 從託管代碼調用非託管代碼
- 20. C++/cli將託管代碼傳遞給非託管代碼
- 21. 從非託管代碼調用託管代碼
- 22. 非託管dll代碼
- 23. 從非託管代碼
- 24. 在非託管C++代碼
- 25. 混合託管和非託管C++代碼?
- 26. 託管和非託管代碼錯誤C3699
- 27. 。混合託管和非託管代碼的問題
- 28. 託管和非託管代碼之間的轉換
- 29. 託管代碼和非託管代碼之間的調用代碼
- 30. 託管和非託管C++和Boost
umnanaged代碼不是gabarge coellcetd – dbkk 2009-05-19 07:02:02