Jérôme Laban 24.03.2020, 11:18 Uhr

C# interop mit C/C++ und Rust in WebAssembly

Wie Sie in einer Webassembly-Anwendung C/C++ sowie Rust-Code von CSharp aus aufrufen können.
(Quelle: https://jaylee.org)
Die Möglichkeit, in anderen Sprachen geschriebenen Code aufzurufen, wird immer wichtiger, da es viele sehr nützliche Bibliotheken gibt, die auf WebAssembly portiert werden. In .NET ist der allgemein definierte Weg für die Durchführung von Interop P/Invoke und DllImport, und .NET für WebAssembly unterstützt dies in Form von statischen Verknüpfungen von LLVM-Bitcode-Objektdateien.
In einem Blogbeitrag geht der kanadische Entwickler Jérôme Laban anhand einiger Beispiele durch, wie C/C++ und Rust-Code aus C# in einer WebAssembly-Anwendung aufgerufen werden kann.
Im allgemeinen .NET-Sinn wurde P/Invoke zur Durchführung dynamischer Verknüpfungen mit Windows PE Dlls erstellt, wurde aber in Mono erweitert, um statische Verknüpfungen zu ermöglichen. Diese Technik wird auch von Mono unter iOS verwendet, um nativen Code aufzurufen, und ermöglicht es, dass ein einziges ausführbares Paket den Code zur Ausführung der Anwendung enthält. Dies wird für die Demos im Beitrag von Jérôme Laban verwendet.
Jérôme Laban ist Software-Architekt aus Montreal, der hauptsächlich an .NET und C#, mit Windows, Xamarin und WebAssembly arbeitet. Seinen englischsprachigen Blog finden Sie auf dieser Seite.


Das könnte Sie auch interessieren