Frage

Ich habe eine reine C ++ Anwendung mit VC 6.0 entwickelt. Ich würde diese Anwendung wie auf die Verwendung einer Bibliothek entwickelt in C # zu machen. Wie rufe ich die Methoden in der C # Bibliothek aus meiner Heimat ausführbaren? Ich will nicht meine un-Managed C ++ native Anwendung verwalteten Code konvertieren. In ähnlicher Weise wie mache ich das Gegenteil? Ist PInvoke die einzige Option? Ich würde alle Verweise oder Zeiger für das gleiche zu schätzen wissen.

War es hilfreich?

Lösung

So rufen in verwalteten Code von nicht verwalteten C ++, verwenden Sie ClrCreateManagedInstance oder Ihre Arten in Ihrem verwalteten Assembly als COM sichtbar, exportieren und COM verwenden. Um in den nicht verwalteten Code aufrufen aus verwaltet wird, verwenden COM oder P / Invoke.

Andere Tipps

Microsofts Hauptleitung hierzu COM-Interop verwenden. Es gibt jedoch ein weitere Option, die manchmal als "Reverse P / Invoke" gibt es eine interessante Blog-Post hier und einige weitere hier

Auch wenn Sie Delphi.NET (heute nicht mehr existierenden) haben diese Sprache ermöglicht es Ihnen, statische Methoden, wie Sie würde jede DLL-Funktion dann exportieren können Sie in die Delphi.NET Montage nennen wie eine normale nativen DLL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top