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


Anmelden zum Antworten