2009-04-21 19 views
1

Gibt es ein Tool, das eine Reihe von C++ - Headern übernimmt und ein XSD und eine Klasse generiert, die das C++ in XML serialisiert?C++ - Objektdiagramm zu C#

Oder wirklich, was wir suchen, ist die einfachste Möglichkeit, Daten von C++ nach C# zu migrieren? Wir haben eine Bibliothek in C++, für die wir eine GUI für C# schreiben möchten. Mit verwalteten Wrapper-Klassen scheint es, als müssten wir Wrapper für jede Klasse erstellen. Automatisierung ist das Ziel.

Antwort

1

Eine mögliche Lösung ... aber immer noch erfordert einige Arbeit !:

Wenn Sie mit Microsoft Visual Studio Sie die CodeDom verwenden können (http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx) C++ Code zu analysieren. Sie können dann T4-Vorlagen verwenden, um C# -Code- oder C++ - Funktionen auszugeben, die Ihre C++ - Objekte serialisieren.

Wenn Sie die Version 2008 von Visual Studio haben, erhalten Sie T4 damit. Für 2005 ist es ein zusätzlicher Download. (http://msdn.microsoft.com/en-us/library/bb126445.aspx)

1

Haben Sie ein kleines Skript als das Schreiben der C++ Header in eine protocol buffer.proto Datei zu konvertieren.

Diese Transformation sollte relativ einfach sein. Dann existieren C++ - und C# -Protokollpuffer-Implementierungen und Sie sollten in der Lage sein, die meisten Ihrer C# zu generieren und eine halbwegs vernünftige Möglichkeit zu haben, sie synchron zu halten, wenn Sie sich ändern.

Das sagte ich würde immer noch sagen, wenn möglich machen Sie Ihre Bibliothek kompilieren mit/CLR, um es von C# trivial verwendbar. Dies ist möglicherweise nicht möglich, wenn andere Benutzer der Bibliothek natürlich nicht von den CLR-Laufzeiten abhängig sind.