什麼是管理對象和非託管對象在C++/CLI什麼是C++/CLI中的託管對象和非託管對象?
回答
管理對象和.NET框架的功能及其實現一個C++的 - 如語言,並有自己的記憶對你由.NET垃圾收集管理。 C++本身沒有這樣的概念,並且更好地(通常)管理所有資源(不僅僅是內存),稱爲RAII。
託管對象在C++中不存在。
它們存在於微軟的.NET擴展到C++,並且完整的解釋會有點長,對不起。
在Visual Studio 2003之後,「擴展」停止支持,支持C++/CLI,這是一種全新的語言。 – 2011-05-03 07:06:53
Managed/Unmanaged概念通常不是C++。這是微軟.Net技術發言。
在普通的普通C++應用程序中,應用程序本身負責刪除已分配的所有內存。這要求開發人員非常小心刪除內存的時間。如果內存過早被刪除,應用程序可能會崩潰,如果它仍然有指向它的指針。如果內存被刪除得太晚,或者根本沒有被刪除,應用程序就會發生內存泄漏。
像Java和.Net這樣的環境通過使用垃圾收集器解決了這個問題。開發人員不應該刪除內存,垃圾收集器將爲他做這件事。
在'本地'.Net語言(如C#)中,整個語言與垃圾收集器概念一起工作。爲了使從簡單的普通C++應用程序轉換到.Net更容易,微軟爲其C++編譯器添加了一些擴展,以便C++開發人員可以從.Net的優勢中受益。
無論何時您使用普通的普通C++,Microsoft都會討論非託管或本機C++。如果您在C++中使用.Net擴展,Microsoft會談到託管C++。如果您的應用程序同時包含這兩個應用程序,那麼您有一個混合模式應用
「Managed C++」在Visual Studio 2003中走了渡河之路。它的後續版本「C++/CLI」有很大的不同。 (例如,第一個產生混合模式的二進制文件,而第二個產生僅CIL的組件) – 2011-05-03 07:05:36
- 1. 什麼是非託管對象?
- 2. 非託管對象的GC.AddMemoryPressure
- 3. CDI與非託管對象
- 4. Unity遊戲對象是託管還是非託管資源?
- 5. 臨時託管對象ID和子託管對象上下文
- 6. 傳遞非託管的指針非託管對象在託管類C++/CLI
- 7. Monotouch:垃圾回收器,託管和非託管對象
- 8. 銷燬C中的非託管對象#
- 9. 如何在非託管對象中獲得託管bean?
- 10. 在非託管中使用託管類對象
- 11. 追蹤通過託管DirectX分配的非託管DirectX對象
- 12. 非託管內存分配到託管對象
- 13. 從非託管類對象調用託管類函數
- 14. 通Bitmap對象以非託管代碼
- 15. RestKit映射非託管對象
- 16. 託管和非託管堆
- 17. 具有非託管屬性的託管對象是否有錯誤?
- 18. 什麼是託管代碼和非託管代碼?
- 19. 什麼是託管資源和非託管資源?
- 20. 什麼是「託管」和「非託管」可用性集?
- 21. 如何自動處理fromClosed事件上的託管和非託管對象?
- 22. 爲什麼我的託管對象看不到與其具有多對多關係的其他託管對象?
- 23. .NET中「託管」與「非託管」資源的含義是什麼?
- 24. 如何刪除與另一個託管對象關聯的託管對象
- 25. 高效地調用非託管方法將非託管對象作爲託管代碼的參數
- 26. iOS:我可以在託管中存儲託管對象嗎?
- 27. 處理管理對象代理的圖形到非託管對象
- 28. Managed C++中託管對象的分配
- 29. 託管和非託管C++和Boost
- 30. 什麼是「託管/非託管類型組合無效」。意思?
C++沒有這樣的區別。您可能指的是C++/CLI,它是使用C++作爲基礎構建的Microsoft語言。但是,C++/CLI是一種*明顯不同於C++的語言。 – 2011-05-03 07:04:44