Ich bin C# -Programmierer und führe Native nicht ein. Ich habe eine native DLL, & Ich kann das in meinem Projekt verwenden, aber einige der Typen sind in verwalteten Code nicht praktikabel. Ich werde eine DLL in Native (C++) vorzubereiten, und ich möchte, wenn ein Ereignis eintritt, dann bewusst, meine verwaltete Code; Wie kann ich das machen?Native DLL erstellen
Antwort
Wenn Ihre Mutter DLL API können Sie einen Funktionszeiger registrieren als ein Rückruf aufgerufen wird, wenn das Ereignis ausgelöst wird, können Sie einen normalen C# Delegaten als Funktionszeiger Marschall kann (Marshal.GetFunctionPointerForDelegate
) und registrieren Sie den verwalteten Delegierten über P/Aufrufen.
Wenn Sie Native Ereignisse in Ihrem C# -Code behandeln möchten, dann ist Ihre beste Wette, eine C++/CLI DLL zu schreiben, die als Zwischenschicht zwischen C++ Native DLL und C# DLL funktionieren würde. Auf diese Weise können Sie Ereignisse in der Zwischenbibliothek behandeln und sie weiterleiten, damit sie von der verwalteten DLL erneut erfasst werden.
Eine weitere Möglichkeit besteht darin, Ihre native DLL als COM-DLL zu schreiben und von dort aus COM-Dispatch-Ereignisse auszulösen. Indem Sie ein Interop dieser COM-DLL erstellen, können Sie die Ereignisse direkt in Ihrer C# -DLL erfassen. Aber diese Route hat eine sehr steile Lernkurve, wenn Sie neu in der COM-Programmierung sind.
- 1. Wrap native DLL für C#
- 2. XAMARIN Forms Binding DLL erstellen
- 3. Konvertieren von Glas in native dll
- 4. Fügen Sie native DLL-Datei zu intelliJ
- 5. Verschmelzen mehrere native DLLs in eine DLL
- 6. Glassfish native Bibliothek Laden (.dll, .so)
- 7. Erstellen pdfium dll
- 8. Erstellen Sie eine JNI-DLL mit MINGW
- 9. Header aus DLL-Exporten erstellen
- 10. Dynamisch native Ressource (.res) erstellen
- 11. Wie QTcore4.dll ohne Abhängigkeit zu MSVCx80.dll zu erstellen?
- 12. Redirect native DLL stdout/stderr von verwalteten Wrapper
- 13. Kann nicht Win32 Native DLL-Datei von C# .NET
- 14. Warum die native DLL nicht in das Ausgabeverzeichnis kopiert wird
- 15. Visual Studio 2012 native C++ DLL x86 Kompilierung
- 16. Kann eine DLL eine .NET DLL aufrufen?
- 17. Create DLL: Wie kann ich eine DLL verwenden, um eine neue DLL zu erstellen?
- 18. Erstellen einer DLL in Visual Studio 2005
- 19. Erstellen Sie eine DLL von HEX-Code
- 20. Erstellen von ActiveX-DLL in Vb6
- 21. Visual Studio wird Debug-DLL nicht erstellen
- 22. Erstellen Proxy/Stub DLL in VS 2008
- 23. Erstellen einer DLL-Datei in C# .Net
- 24. eine DLL-Assembly erstellen mit Konstanten
- 25. Erstellen von ActiveX-DLL in Visual C++
- 26. Erstellen von SQLite-DLL mit VS2015
- 27. Erstellen modal auf Klick reagieren-native Android
- 28. Knockoutjs native Vorlage - So erstellen Sie URL
- 29. Erstellen Sie eine Admob-native Anzeige programmgesteuert
- 30. Wie native C++ - Bibliothek auf Android erstellen?