2009-05-11 13 views
5

Ich muss einige ANSI C Code in ein Projekt importieren, an dem ich arbeite. Aus Gründen, auf die ich lieber nicht eingehen möchte, möchte ich den Code in C# umgestalten, anstatt zu versuchen, den ursprünglichen Code zu umbrechen. Ich werde vielleicht ein paar Tage brauchen, um die Arbeit mit der Hand zu erledigen, aber bevor ich anfange, gibt es ein automatisiertes Werkzeug, das mir den größten Teil des Weges bringt? Ich bin ein Geizkragen und die Arbeit, die ich mache, ist pro bono, also bitte nur kostenlose Werkzeuge.Gibt es ein Tool zum Konvertieren von ANSI C-Code in C#?

+0

Freut mich, Sie zuzugeben, dass Sie ein Geizkragen sind. ;-) – peSHIr

+0

Ich bin eigentlich kein Geizkragen auf eigene Faust, aber ich gebe mein Zeit für dieses spezielle Projekt kostenlos und so bin ich nicht bereit, dafür Geld auszugeben. Wenn ich bezahlte Arbeit mache, versuche ich, die besten Werkzeuge zu verwenden, die ich mir leisten kann. –

Antwort

2

Wenn das manuelle Refactoring "nur" ein paar Tage dauert, würde das meine Stimme bekommen. Abhängig davon, was der C-Code macht und wie er geschrieben wird (Zeiger, benutzerdefinierte Bibliotheken, etc.), kann ein automatischer Konverter nur ein Durcheinander verursachen. Und dieses Durcheinander zu entwirren könnte eine größere Aufgabe sein, als nur mit der Hand zu konvertieren.

1

Einrichten, Aufräumen, Refactoring und einfach machen konvertierten Code (wenn es sogar einen Konverter zur Verfügung) wäre wahrscheinlich etwas in der Größenordnung von Wochen oder Monaten, so dass Sie besser bedient werden, nur um voranzukommen mit dem manuellen Neuschreiben.

1

Es gibt eine experimentelle CLI Back-End and Front-End für GCC. Es ist bereits in der Lage, eine Teilmenge von C-Programmen in CIL zu kompilieren, den Bytecode, den die CLR ausführt.

(Die Webseite macht es scheint, wie der Code nur über ein paar Monate entwickelt wurde und dann seitdem ignoriert, aber es ist nicht mehr aktuell; ST Microelectronics Wartung und Entwicklung weiter fort.)

Sie nicht angeben Warum Sie möchten einen C zu C# Übersetzer, aber wenn Sie nur C und C# zusammen ohne P/Invoke oder COM spielen möchten, könnte es gut genug sein.

1

Es kann sinnvoll sein, den vorhandenen Code zunächst als verwaltetes C++ - also als C++/CLI - zu kompilieren. Geht man davon aus, dass alles glatt genug ging, dann hat man eine funktionierende, testbare Grundlage, auf der man aufbauen kann. Verschieben Sie die Schlüsselfunktionen in ihre eigenen Klassen und schreiben Sie sie bei Bedarf als C# neu.

Verwandte Themen