Ich schreibe einen C# -Wrapper für eine native Bibliothek von Drittanbietern, die wir als DLL haben. Ich möchte in der Lage sein, eine einzelne DLL für die neue Assembly zu verteilen. Ist es mir möglich, die win32-DLL in meine .NET-DLL einzubetten und trotzdem mit P/Invoke aufzurufen? Wenn das so ist, wie?Kann ich eine win32-DLL in eine .NET-Assembly einbetten und mit P/Invoke?
Antwort
Ich habe es noch nie gemacht, aber ich weiß von einem OpenSource-Projekt, das dies tut. Sie betten den nativen SQLite3-Code in die verwaltete SQLite-Assembly ein, wobei sie ihr eigenes Tool mit dem Namen mergebin verwenden.
Gehen Sie und werfen Sie einen Blick auf die SQLite project for .NET by PHX und greifen Sie die Quelle und Sie können sehen, wie es gemacht wird.
Ich glaube nicht, dass Sie es direkt tun können, aber es ist möglich, es zur Laufzeit zu einem temporären Speicherort zu extrahieren und Aufruf an diese Kopie zu machen.
Sollte funktionieren, wenn die native DLL keine Abhängigkeiten hat.
Sie können die DLL als eingebettete Ressource kompilieren, als auf den Stream von innerhalb Ihres Codes zugreifen, es in den temporären Ordner serialisieren und es von dort verwenden.
Zu viel, um Beispielcode hier zu posten, aber der Weg ist nicht zu kompliziert.
- 1. Kann ich eine benutzerdefinierte Schriftart in eine Android-Anwendung einbetten?
- 2. Kann ich ein PNG-Bild in eine HTML-Seite einbetten?
- 3. Kann ich andere Dateien in eine DLL einbetten?
- 4. Wie kann ich einen PDF-Viewer in eine Webseite einbetten?
- 5. Kann ich die Simulink-Schnittstelle in eine MATLAB-GUI einbetten?
- 6. Wie mache ich eine PInvoke-freundliche native-API?
- 7. Grafik in eine Webseite mit Bottle einbetten
- 8. Eine Schriftart in Delphi einbetten
- 9. Wie kann ich eine Twitter-Timeline in eine Shiny-App einbetten
- 10. Xamarin.Forms: Kann ich eine ContentPage oder ContentView in eine andere ContentPage einbetten
- 11. Groff: Kann ich Bilder einbetten?
- 12. Kann ich Swing-Komponenten in Jogl einbetten?
- 13. Kann ich Video mit FCKeditor einbetten?
- 14. Einbetten von Shaderinformationen in eine .x-Datei
- 15. Mehrere Benutzersteuerelemente in eine Seite einbetten?
- 16. Eine benutzerdefinierte Ansicht in ein WebView einbetten
- 17. Sollte ich CSS/JavaScript-Dateien in eine Webanwendung einbetten?
- 18. Kann ich anychart in meine gMail einbetten?
- 19. Youtube-Video in eine Android-App einbetten
- 20. pinvoke C#: Wie kann ich "const char ** output" zuordnen?
- 21. Java-Applet in eine Website einbetten
- 22. Einbetten einer Galerie in eine ListView?
- 23. Ein Bild in eine AJAX-Antwort einbetten
- 24. Einbetten einer Konsolenanwendung in eine Winforms-Anwendung
- 25. Einbetten von Bildern in eine Chrome-Erweiterung
- 26. Eine JRE in eine ausführbare Windows-Datei einbetten?
- 27. Einbetten von Daten in eine C++ - Anwendung
- 28. Einbetten eines Feldeditors in eine NSScrollView
- 29. Fotos in eine E-Mail einbetten
- 30. Eine benutzerdefinierte Schriftart in einen Bildschirmschoner einbetten