Инструменты для преобразования C # в управляемое переполнение стека

У меня есть несколько переносимых библиотек .NET, написанных на C #, которые мне нужно портировать на Qt (C ++). Поскольку многие из этих классов в значительной степени не зависят от классов платформы .NET, я подумал, что будет хорошей стратегией использовать сначала инструмент для преобразования кода C # в Managed C ++, а затем использовать его в качестве основы для переноса. это для использования в Qt, а не переписывать все это в C ++

Существуют ли бесплатные инструменты для преобразования кода C # или декомпиляции встроенной сборки в Managed C ++?

-3

Решение

Поскольку многие из этих классов в значительной степени не зависят от классов платформы .NET, я подумал, что будет хорошей стратегией использовать сначала инструмент для преобразования кода C # в Managed C ++, а затем использовать его в качестве основы для переноса. это для использования в Qt, а не переписывать все это в C ++

Это ошибка в рассуждениях. Управляемый C ++ не является C ++. То, что они похожи по синтаксису, не упрощает процесс перемещения кода, напротив, вы делаете вещи излишне сложными для себя.

Первое, что приходит на ум, — это управление памятью. Ваш проект Managed C ++ будет использовать ссылки на объекты GC ( ^ type), который не может быть легко преобразован в семантику управления памятью C ++, и это не то, что можно сделать автоматически, если у вас нет собственной библиотеки Garbage Collection, которую вы готовы встроить в существующую программу.

В .NET есть больше, чем классы фреймворка, но рассмотрим среду выполнения. Я уже коснулся GC, но как насчет исключений? Threading? ABI? И так далее.

Вам лучше переписать его на чистом идиоматическом C ++, чем создавать беспорядок, который пытается превзойти CLR и притворяться, что C ++.

3

Другие решения


По вопросам рекламы [email protected]