Comentários
Resposta
Essas chamadas não podem “ser transferidas, pelo menos não diretamente. gcnew
não é uma palavra-chave C ++, é de “C ++ / CLI”, que é um idioma diferente atualmente não suportado pelo gcc. Esta pergunta SO mais antiga diz que havia uma vez, uma tentativa de suportá-lo, mas parece estar morto desde 2009.
A única maneira razoável de fazer isso é portar todo o código gerenciado para C ++ padrão e, em seguida, gcnew
e gcroot
não serão mais necessários.
Resposta
Além da resposta do DocBrown “, você pode considerar o uso de alguma biblioteca coletor de lixo existente (por exemplo, Conservação de Boehm ve GC ou RavenBrook “s MPS ou seu próprio GC) em seu código. Veja também isto .
Pode não ser fácil usar um GC (pode nem valer a pena, e você pode decidir para usar gerenciamento manual C ++ genuíno e ponteiros inteligentes sem nenhum GC), e você certamente precisa estar ciente das técnicas, conceitos, terminologia e armadilhas de GC. Portanto, leia O manual do GC .
Observe que você também pode considerar o uso de algumas bibliotecas de framework C ++ existentes, como como Qt ou POCO ou Boost .
Basicamente, você deve reescrever seu código para um C ++ mais padrão (por exemplo, C ++ 14, pelo menos).
Comentários
- Observação lateral: ao portar código gerenciado para não gerenciado, o GC ausente na maioria das vezes não é o maior problema, se é que é um problema. Encontre um substituto para as bibliotecas de classes do .NET framework usadas pelo programa é.
g++
paraclang
deve ser fácil depois que você fizer seu trabalho.