Seite 1 von 1

C # .Net Methoden von C heraus aufrufen

Verfasst: Sa Mai 04, 2019 8:06 pm
von doubleII
Hallo,

ich versuche C# Methoden von C Projekt heaus aufzurufen, leider finde ich kaum Info darüber.
Hat sich schon jemand mit dem Thema beschäftigt?

Ich habe das Nuget Paket gefunden. Dies gibt die Möglichkeit, C# Method in native Anwendungen zu exportieren. Mein Problem ist, dass ich nicht weiß, wie ich die Methoden in C aufrufen kann. Ich habe ins Internet nichts gefunden, was mir weiter helfen könnte.
www.nuget.org/packages/UnmanagedExports

Hier anbei ein Beilspiel.

Code: Alles auswählen

public class Library
    {

        [DllExport("add", System.Runtime.InteropServices.CallingConvention.Cdecl)]
        public static int Add(int a , int b)
        => a + b;

        [DllExport("mul", System.Runtime.InteropServices.CallingConvention.Cdecl)]
        public static int Multiplication(int a, int b)
        => a * b;
    }
Vielen Dank!

Re: C # .Net Methoden von C heraus aufrufen

Verfasst: Sa Mai 04, 2019 8:49 pm
von Xin
Das Problem ist - meineswissens, was nicht korrekt sein muss, weil ich derartiges seit Jahren nicht mehr gemacht habe - dass die Parameter der Funktion in den .NET-Speicherbereich kopiert werden müssen.
Du brauchst - meineswissens - eine C++/CLI Library, die C-Funktionen exportieren kann und .NET-Funktionen rufen kann.
Diese Funktionen musst Du dann generieren, bzw. selbst schreiben.
Du rufst also eine C-Funktion im .NET Umfeld, die dann die C#-Funktion rufen kann.
Außerhalb des .NET-Umfeldes kannst Du - meineswissens - keine .NET-Funktionen rufen.

Re: C # .Net Methoden von C heraus aufrufen

Verfasst: So Mai 05, 2019 11:32 am
von doubleII
Ok, Danke Dir für die Info. Es wäre einfacher, wenn ich rein auf "C" das Zeug programmiere.