Как я могу перевести небольшие C++/проект CLI в C#перевести C++/CLI в C#
ответ
Одна карусель, ручной способ будет скомпилировать проект ++/CLI C и открыть выходной узел в Reflector. Разберите каждый класс, преобразуйте дизассемблированный IL в C# и сохраните этот код.
Что касается автоматического способа сделать это, я не могу думать ни о чем с головы.
Те вещи, которые говорят, вы действительно действительно хотите, чтобы преобразовать ваш проект в C#? Если ваш проект C++/CLI использует какой-либо неуправляемый код, у вас будет сложное время с чисто управляемым эквивалентом. Если проект более или менее составлен из чистого кода CLR, и он был написан на C++/CLI для написания на C++/CLI, я могу понять, что хочу преобразовать его в C#. Но если есть причина для написания его в C++/CLI, вы можете сохранить его таким образом.
Я не пробовал, но я просто гугл его и нашел это: http://code2code.net/ По т ней, вы не должны полностью полагайтесь на код, который он производит:
Вы считаете, что эта страница выполняет только половину работы. Требуется дополнительная работа с вашей стороны. В большинстве случаев переведенный код даже не компилируется.
Кроме того, прочитать: Translate C++/CLI to C#
IMHO, линия за строкой - лучший способ. Я портировал несколько проектов стиля C++ на управляемый язык, и я пробовал различные подходы; переводчики, по очереди, сценарии и т. д. Со временем я нашел наиболее эффективный способ сделать это по очереди, хотя сначала он кажется самым медленным.
Слишком много потеряно в переводчике. Переводчик не идеален, и вы в конечном итоге тратите много времени на исправление переведенного кода. Кроме того, переведенный код, как правило, является уродливым и имеет тенденцию быть менее читаемым, чем ручной код. Таким образом, результат - это фиксированная, не очень красивая база кода.
Несколько советов я на построчно
- Start путем определения всех типов листьев
- Для каждого типа, который имеет нетривиальное (освобождение памяти) деструктор, реализовать IDisposable
- Включите правило FxCop, которое проверяет отсутствие вызовов Dispose, чтобы поймать все места, использующие использованный RAII на основе стека, и пропустил его.
- Обратите особое внимание на использование byref в C++.
- 1. Перевести My.Application.Deployment.ActivationUri в C#
- 2. Перевести псевдокод в C++
- 3. Перевести код C# в AST?
- 4. Как перевести int * в C#?
- 5. Перевести объектив-c в ruby
- 6. перевести функцию C++ в Android
- 7. Перевести код C в Ассамблее
- 8. Перевести C++ конструктор в Java
- 9. Перевести C++/CLI на C#
- 10. перевести Expokit на C
- 11. Перевести python на C#
- 12. Перевести C на Pascal
- 13. Перевести CFindWnd на C#
- 14. Как перевести make_pair в C++ на C#?
- 15. Как следует перевести C битфлаг в C++?
- 16. Перевести C++ на сборку MIPS
- 17. Перевести "Multilanguage" enum javascript/C#
- 18. Как перевести это на C#
- 19. Нужно перевести UnityScript на C#
- 20. Перевести алгоритмический C на Python
- 21. Перевести Curl команду Objective C
- 22. Перевести функцию C++ на Java
- 23. Перевести Java-код на C++
- 24. Перевести код C# на VB.net
- 25. Перевести строку Haskell на C
- 26. Перевести код C# на VBNET
- 27. Перевести Obj-C на C# (MonoTouch)
- 28. Нужно перевести некоторые C# на Obj-C
- 29. Перевести на Objective-C от Objective-C++
- 30. Перевести и масштабировать UIView в Objective-C