Есть ли какие-либо инструменты для портирования кода C ++ в код C #? [закрыто
-
26-09-2019 - |
Вопрос
У меня есть пара C ++ Утилиты, которые я хотел бы портировать до Net Net. Мне было интересно, есть ли инструменты для портирования приложения C ++ в C #?
Я предлагаю, что любой автоматизированный инструмент сделает беспорядок любого кода, так что, возможно, я также должен спросить, это хорошая идея или нет?
Решение
Лучший вопрос, почему вы когда-либо только что Рабочий код портов без получения дополнительной стоимости (то есть новых функций)? Усилие почти усердно будет сильнее и займет больше времени, чем вы ожидаете. Лучше, используйте много возможностей взаимодействия .NET .NET, чтобы вызвать код C ++ из C #. Сосредоточиться на добавлении новых функций в C #, но не тратьте свое время портирование рабочего кода.
Другие советы
- Клавиатура.
- Мышь
- Монитор.
- Кофе.
- Поиск регулярных выражений и замена.
Конечно, это оживленный рынок. Отказ Переход от C ++ к C # дает вам то, что мощь компилировать чисто. Делать его на самом деле работу, принимает линейку: «О, Gawd, я буду застрелить себя в томоров». YMMV.
Это должно было быть комментарий. Но у меня нет достаточно полномочий, чтобы опубликовать комментарий. Это точно не имеет отношения к вашему вопросу. Я думал, что это будет полезно для вас.
C ++ -> C #: Что вам нужно знать, чтобы перейти от C ++ к C # #
Моя компания, Семантические конструкции Имеет инструмент, который преобразуется от C ++ в C #. Он обрабатывает языковые языковые конструкции конверсии от C ++ (декларации данных / класса, исполняемые операторы) к C #. Инструмент перевода основан на DMS Software Reenginering Toolkit.
Это требует настройки для обработки перевода экзотических конструкций (COM CONSTS, ваших пользовательских API, ...) к C #. Любой инструмент, который вы можете найти, будет нуждаться в такой настройке; Никакой инструмент для полки не может практически удовлетворить ваш полный набор конкретных обстоятельств.
Как насчет компилятора C ++ / CLI, который производит сборки .NET из C ++ Code. В конце концов вы захотите переделать точки входа, чтобы принять типы .NET (например, System::String
вместо классики char *
), но вы доберетесь до .NET намного быстрее, не используя C #. Существуют также автоматические преобразования между C ++ / CLI и C #, но только после того, как код C ++ является .nefified (вышеупомянутое преобразование в System::String
, generic<typename T> System::Collections::Generic::List
, так далее.)