C++ DLL in C# verwenden

CopWorker

Erfahrenes Mitglied
Hallo zusammen,

sorry dass ich euch belästigen muss.
Aber leider komme ich nicht weiter.

Ich habe in mein C# Projekt eine in C++ erstellte DLL eingebunden.

Auf die Funktionen der DLL greife ich so zu wie es in zahlreichen Beschreibungen erklärt ist.

Erstmal die DLL (TraceLog.dll) über Verweise | Verweise hinzufügen in mein C# Projekt einbinden.
Dann die Using Directive angeben
C#:
using System.Runtime.InteropServices;
Anschließend die DLL Imporierung vornehmen
C#:
[DllImport("TraceLog.dll", EntryPoint = "InitTraceLog", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
        public static extern void InitTraceLog(????????);
Jetzt kommt der Haken.
Dort wo die vielen ? stehen soll der Übergabeparameter vom Typ "HINSTANCE" rein.
HINSTNACE ist aber C/C++ spezifisch und kann unter C# gar nicht verwendet werden.

Ich habe mal was über Marshal und MarshalAsAttribute gelesen.
Das führt mich aber nicht zu gewünschten Ergebnis.

Ist der Übergabeparameter "HINSTANCE" überhaupt möglich in C#.
Wenn ja, wie kann ich den dann noch beim Funktionsaufruf erzeugen?

C#:
InitTraceLog(???????????)

Wenn´s nicht geht kann ich die DLL wegschmeißen, oder.

MfG.
CopWorker
 

Neue Beiträge

Zurück