1
A
回答
2
它的工作原理完全一樣......託管代碼無法訪問的對象符合垃圾回收的條件,因此如果您的非託管代碼依賴於託管資源繼續存在,則必須在c#方的某處持有對其的引用的應用程序。
編輯:適用於非託管C++
0
託管C++使用普通的垃圾收集器。
相關問題
- 1. C++類,對象和內存管理
- 2. C++類中Objective-c對象的內存管理
- 3. 如何將C#類對象傳遞給C++非託管代碼?
- 4. 如果我混合使用Objective C中的C++代碼管理C++對象的內存,ARC會處理它嗎?
- 5. objective-c對象內存管理
- 6. C++內存管理對象矢量
- 7. C#內存/對象理解
- 8. 內存管理c
- 9. 管理內存C++
- 10. C內存管理
- 11. 將以下C++代碼轉換爲對象C或C類
- 12. 用C++/CLI互操作管理內存
- 13. 內存管理,同時實現用C
- 14. 如何在C++內存管理中管理類 - 研究
- 15. 關於內存管理當提及C++
- 16. 池內存用C - 內存管理
- 17. 返回一個Objective-C對象時的內存管理
- 18. 託管C#中的自由非託管C代碼內存
- 19. 如何在C代碼中存儲C++對象?
- 20. 內存管理 - C#VS Objective C?
- 21. C/C++中的內存管理範圍
- 22. C或C++堆內存管理實現
- 23. Crystal X內存管理,C#託管代碼
- 24. 內存管理和C++容器類
- 25. 管理C#代碼片
- 26. C#錯誤代碼管理
- 27. 如何從C#代碼作爲管理員運行exe文件?
- 28. 如何在C++中管理'ostringstream'對象?
- 29. 目標C - 內存管理
- 30. C++中的內存管理。
假設我有一個場景,其中我的託管C++代碼調用該方法返回一個數組或anobject(即我假設對象的內存將在託管堆中分配)C#類服務器。現在我懷疑這個C#對象memroy是如何被C++代碼使用的 – sqlnewbie 2011-05-20 11:43:22
正如yaur所說的,就像從C#類一樣。 C++代碼h會將它們封裝在一個託管指針中,以通知GC。這些指針,只要存在,就算作參考並停止垃圾收集。這曾經是一個GcRoot模板。現在它更加透明,但方法是一樣的。 – TomTom 2011-05-20 11:58:45
我不認爲我遇到過,我不得不從c#返回一個數組到C++。你將不得不將它列入非託管內存或固定數組,這意味着你將不得不做一些工作來避免內存泄漏。 C++/cli(你稱之爲managed-C++)稍微直截了當是因爲它處理了大量的幕後編組工作,IIRC從你的C++/cli程序集的管理位完全相同,就好像它是c#和複雜的部分在該組件的管理和非管理部分之間。 – Yaur 2011-05-20 12:09:56