2016-04-07 18 views
1

Ich muss eine .NET-Bibliothek zu Linux portieren, um mit Mono zu laufen.Verwenden Sie eine gemischte (verwaltet/unmanaged) DLL unter Linux (Mono)

Die Bibliothek selbst ist in C# geschrieben, verweist jedoch auf eine andere DLL mit gemischten Modi, die mit verwaltetem und nicht verwaltetem C++ geschrieben wurde, und stellt verwaltete Wrapper den nicht verwalteten Klassen zur Verfügung.

Ich nehme an, die DLL würde nicht nur auf Linux arbeiten, da es mit VS für Windows kompiliert wurde.

PS: Die Mixed-Mode-DLL verbindet nur libpng und zlib, die beide Linux-Ports haben.

1) Gibt es einen einfachen Weg dahin?

2) Kann WINE irgendwie in Verbindung mit Mono verwendet werden, um den nicht beschädigten Teil der Bibliothek abzudecken? Und wenn ja, wird das Leistungsprobleme verursachen?

+0

in pythonnet mono eingebettet dieser Frage herum arbeiten: https://github.com/pythonnet/pythonnet/blob/master/src/monoclr/pynetclr. h – denfromufa

Antwort

1

Mono unterstützt keine Mixed-Mode-Assemblies, daher könnten Sie versuchen, wenn WINE helfen kann.

Der gangbare Weg ist CppSharp zu verwenden, wird https://github.com/mono/CppSharp

+0

cppsharp unterstützt nicht reverse pinvoke (dllexport) https://github.com/mono/CppSharp/issues/613 – denfromufa