Reacties
Answer
Die oproepen kunnen “niet worden overgedragen, althans niet rechtstreeks. gcnew
is geen C ++ sleutelwoord, het is van “C ++ / CLI”, wat een andere taal is die momenteel niet wordt ondersteund door gcc. Deze oudere SO-vraag zegt dat er was ooit een poging om het te ondersteunen, maar het lijkt sinds 2009 dood te zijn.
De enige redelijke manier hiervoor is om alle beheerde code over te zetten naar standaard C ++, en vervolgens gcnew
en gcroot
zullen “niet meer nodig zijn.
Antwoord
Naast het antwoord van DocBrown “s antwoord , zou je kunnen overwegen om een bestaande garbage collector-bibliotheek te gebruiken (bijv. Boehm “s conservati ve GC , of RavenBrooks MPS , of uw eigen GC) in uw code. Zie ook dit .
Het is misschien niet gemakkelijk om zon GC te gebruiken (het is misschien niet eens de moeite waard, en je zou kunnen beslissen om echt C ++ handmatig beheer en slimme aanwijzingen te gebruiken zonder enige GC), en je moet zeker op de hoogte zijn van GC-technieken, concepten, terminologie en valkuilen. Dus lees Het GC-handboek .
Merk op dat u ook zou kunnen overwegen om enkele bestaande C ++ frameworkbibliotheken te gebruiken, zoals als Qt of POCO of Boost .
Je zou in principe je code moeten herschrijven naar meer standaard C ++ (bijvoorbeeld C ++ 14 tenminste).
Reacties
- Kanttekening: bij het porten van beheerde code naar onbeheerde code is de ontbrekende GC meestal niet het grootste probleem, als het al een probleem is. Een vervanging voor de .NET Framework-klassebibliotheken die door het programma worden gebruikt, is.
g++
naarclang
zou gemakkelijk moeten zijn als je eenmaal je werk hebt gedaan.