Gibt es eine Möglichkeit, p/invoke-Wrapper für .net automatisch aus einem C-Header zu erstellen?
Natürlich könnte ich sie von Hand erstellen, aber ihre Pflege wäre mühsam und ich würde wahrscheinlich irgendwo einen Fehler machen, der zu schwer zu debuggenden Abstürzen führt.
Ich habe SWIG ausprobiert, aber es wurden vollständige Klassen erstellt, bei denen einfache Strukturen ausreichen würden.
Ein weiteres Problem mit SWIG ist, dass es zusätzliche erfordert Interop-Code auf der C-Seite.
Ich würde es vorziehen, wenn die Ausgabe auch auf Mono funktionieren würde, aber das ist nicht notwendig.
Eine andere Sache, mit der ich arbeiten könnte, ist ein Programm, das den C-Header analysiert und eine Ausgabe in einem schönen Zwischenformat wie XML erstellt, aus dem ich den C#-Wrapper selbst erstellen kann.
Bearbeiten:
PInvoke Interop Assistant ist das, was ich brauchte.
Es gibt allerdings ein paar kleine Probleme damit:
* Es übersetzt „unsigned char*“ in einen String, wo ich IntPtr bevorzugen würde
* Es geht davon aus, dass size_t=int=long=32bit. Das gilt derzeit für mich, trifft aber möglicherweise nicht auf jeder Plattform zu.
Gibt es eine saubere Möglichkeit, das zu beheben? Ansonsten werde ich den C-Code ein wenig suchen und ersetzen, bevor ich ihn konvertiere.
C#-Wrapper automatisch aus C-Headern erstellen? ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post
Mobile version