Konwersja C++/CLI na C#

0

Mam bardzo bardzo stary projekt w C++ VS2003. Nadszedł czas na wielką konwersję na VS2008 i przy okazji na język C#.

Wiem, że konwersja z VS2003 na 2008 nie powinna być wielkim wyzwaniem, ale w tym projekcie akurat różne powiązania, zewnętrzne biblioteki itp. komplikują życie i po samej konwersji projekt się nie kompiluje.

Wiem, że konwersja z C++ na C# brzmi jak więcej roboty niż jest to tego warte, ale tu akurat idą za tym kolejne korzyści - rezygnacja z boosta na rzecz wbudowanych bibliotek na przykład.

Wiem, że nie pójdzie to z płatka i z automatu, ale może znacie i polecacie jakieś narzędzia, które potrafią takie cuda? Głównie chodzi mi o konwersję z C++ na C#, bo ta między wersjami VS to taki tam pikuś, bardziej piszę o niej dla podania kontekstu.

2

Jeżeli projekt w C++/CLI skompilujesz jako /clr:pure, tj. tylko sam MSIL, to IL można zamienić na C# za pomocą jednego z wielu dostępnych .net reflectorów.

1

jeżeli to jest VS2003, to nie C++/CLI tylko MC++ (Managed C++).
To utrudnia sprawę.

Nowsze wersje potrafią skompilować taki kod z parametrem /clr:oldSyntax, ale wynikowego kodu nie da się automatycznie przekształcić na C# (bo nie jest „pure”).
A z boostem to już „wo‌gle”.

Nie piszesz jak duży jest projekt.

Masz dwie drogi:
• przepisać od razu wszystko na C# (automatów niet)
• małymi kroczkami:
· przejście na 2008 czy 2010, początkowo z oldSyntax, potem bez
· w międzyczasie pozbycie się boosta i innych bibliotek
· ostatecznie przejście z C++ na C# (albo nawet i nie, bo na tym etapie niewiele to już wniesie)

0

@Azarien, solucja składa się z trzech projektów:

  • Core - najistotniejszy, dla niego jest to przenoszone, ma ok. 30 plików cpp (i tyle samo h), w większości jest po kilka małych klas. Wykorzystuje boosta, głównie do operacji na stringach i do wyrażeń regularnych, wykonuje bardzo dużo operacji z wykorzystaniem wyrażeń regularnych.
  • Śmiecior - czyli dllka w którą wrzuca się wszystko a potem wszystko z tego korzysta i nie można się wygrzebać :/ Do usunięcia, ale niestety wykorzystywane wciąż w wielu miejscach. plików ma co prawdo tylko ok. 15, ale to nic, bo w jednym z nich jest absolutnie wszystko - 38780 linii kodu.
  • Tools - mała klasa z użytkami.

Przepisywanie od zera wydaje mi się za dużą kobyłą, wolałabym wygenerować nawet totalną sieczkę do uporządkowania. Spróbuję za twoją radą, zacząć od konwersji na 2008.

1 użytkowników online, w tym zalogowanych: 0, gości: 1