Pointer auf Struct
-
Hi,
gibt es in C# eine Möglichkeit mit einem Pointer auf ein struct zu zeigen? In C++ würde man das ja so machen, :
typedef struct { ... } pointer_to_struct;
aber wie geht das in C#?
Brauchen tu ich das, weil ich aus C# auf eine C++-Dll zugreifen muss. Einer der Funktionen muss ich einen Pointer auf das struct übergeben und einer anderen muss ich einzelne Elemente aus dem struct übergeben.Vielen Dank
-
Ja geht, mit:
System.Runtime.InteropServices.Marshal.StructureToPtr( ... )Sollte es zu laufzeitfehler kommen, musst du die Struct exakt nach bilden
d.h. du musst folgendes setzen[System.Runtime.InteropServices.StructLayout( System.Runtime.InteropServices.LayoutKind.Explicit ) ] struct test { [System.Runtime.InteropServices.FieldOffset(4)] public int Wert; }
Nur so läst dotnet deine struct in Ruhe