Automatisches erstellen von C# - Wrapper aus c-Headern?

Gibt es eine Möglichkeit zum automatischen erstellen von p/invoke-Wrapper für .net aus einer c-header?

Natürlich kann ich auch erstellen Sie Sie mit der hand, aber pflegen würde schmerzhaft sein, und ich würde wahrscheinlich irgendwo einen Fehler wodurch schwer zu Debuggen, stürzt ab.

Ich versuchte einen SCHLUCK, aber es hat die volle Klassen, in denen einfache Strukturen ausreichend wäre.
Ein weiteres problem mit SWIG ist, dass es erfordert zusätzliche interop-code auf die c-Seite.

Ich würde es bevorzugen, wenn die Ausgabe arbeitete auf mono zu, aber das ist nicht notwendig.

Andere Sache, die ich konnte mit der Arbeit ist ein Programm, welches analysiert die c-header und erzeugt einen Ausgabe in einem schönen intermediate-format, wie xml, von dem ich die C# - wrapper mich.

Edit:

PInvoke Interop Assistant ist das, was ich brauchte.

Es gibt einige kleine Probleme mit ihm, obwohl:

* Es übersetzt "unsigned char*" string, wo ich lieber IntPtr

* Es wird davon ausgegangen, dass size_t=int=long=32bit. Dies ist derzeit für mich wahr, aber nicht wahr, auf jeder Plattform.

Gibt es eine saubere Möglichkeit, dass zu beheben? Sonst verwende ich ein bisschen suchen-und-ersetzen auf den c-code vor der Konvertierung.

InformationsquelleAutor Winner | 2010-03-25
Schreibe einen Kommentar