gcroot ne anlama geliyor? Bunu okuduğum kodda buldum.C++/cli içinde gcroot
cevap
gcroot C++/cli sınıflarında yönetilen tiplerini tutan artmasına katkıda C++/cli şablon sınıfıdır. yönetilen nesne veya değer türü örneğine bir referans olarak
class Native {
public:
Native(Object ^obj) :
netstring(obj->ToString()) { // Initializing the gcroot<String ^>
}
~Native() {
}
void Print() {
array<Char> ^chars = netstring->GetChars(); // Dereferencing the gcroot<String ^>
_wprintf("netstring is:");
if (chars->Length > 0) {
pin_ptr<Char> charptr = &(chars[0]);
_wprintf("%s", (wchar_t const *)charptr);
}
}
private:
gcroot<String ^> netstring;
};
gcroot eylemleri ve nesne veya değer türü örneği kopyalarken tüm çalışmaları yapıyor:
Örneğin aşağıdaki olabilir. Normalde GCHandle ve .NET çerçevesinin bazı C işlevleri ile çalışmanız gerekir. Bu hepsi gcroot içinde kapsüllenmiş.
.NET çöp toplayıcısını çalıştırdığında, okunabilirlik analizi yaparak hangi nesnelerin hala kullanılmakta olduğunu belirler. Nesneleri işaretçi ararken yalnızca yönetilen yığın analiz edilir, bu nedenle bir yerel nesneden yönetilen bir nesneye bir işaretçiniz varsa, çöp toplayıcısını bilmeniz gerekir, böylece erişilebilirlik analizine dahil edebilir ve böylece Hedef sıkıştırma sırasında hareket ederse işaretçiyi güncelleyin.
Rstevens'in dediği gibi, .NET GCHandle
sınıfı bunu yapar ve C++/CLI, GCHandle
için tip güvenliği ve kullanışlı sözdizimi ekleyen bir C++ yönlendirmeli sarıcıdır.
- 1. gcroot güvenli kullanım mı?
- 2. Bir gcroot <Object^>'u C++ ağında IMyInterface'e nasıl dökerim?
- 3. İçinde Qt İçinde Clion
- 4. [] içinde [] içinde bulunur. ForEach.call()
- 5. gcroot'u anlama
- 6. Excel içinde VBA içinde tamamlandı
- 7. Makro içinde makro içinde C
- 8. Lua içinde tablo içinde tablo
- 9. Kendo UI döngü içinde Json içinde şablon içinde ListView için
- 10. rest_in_place döngü içinde bir döngü içinde seçin
- 11. css içinde "kavanoz içinde" görüntülerin JavaFX kullanımı
- 12. Gtring içinde bir Gstring içinde GString
- 13. bufferedReader.readLine, Android içinde IF içinde çalışmaz
- 14. Geç yanıt async io içinde Akka içinde
- 15. Bash içinde parantez içinde (!) Nasıl kullanılır?
- 16. margin içinde düzenleme metni içinde android
- 17. elasticsearch içinde sugsterters içinde mongoosastic geçen yükü
- 18. java içinde ArrayList içinde Nesnede Döngü
- 19. AForge İçinde Dikdörtgen İçinde Daire Bulmak
- 20. C# içinde DataGridView içinde arama işlevi?
- 21. Xamarin.forms içinde liste içinde liste xaml
- 22. Enjeksiyon tarihiFilterJs içinde bir hizmet içinde süzgeç
- 23. lua içinde html etiketleri içinde dize Bul
- 24. Reklam içinde renderUzum içinde renderDataTable kullanma
- 25. İçinde R içinde Magic %% komutları Jupyter
- 26. Paketleme algoritması rtree içinde boost içinde
- 27. cursor.rowcount daima -1 python3k içinde sqlite3 içinde
- 28. Matris İçinde Tek Satır İçinde Döndürme Öğeleri
- 29. Parantez içinde ifadeyi dize içinde ifade etme
- 30. Kullanımdan kaldırılmış getChildPosition() android içinde recyclerview içinde
1 google bağlantısı: http://msdn.microsoft.com/en-us/library/481fa11f(v=vs.80).aspx –