struct als rückgabe (DLL)



  • Hallo Zusammen,

    habe eine DLL Funktion, die als Returnwert einen Zeiger auf eine Struktur gibt.
    Jetzt möchte ich diese Struktur in C# auslesen. Doch leider erhalte ich immer folgende Fehlermeldung beim ausführen

    Zusätzliche Informationen: return value kann nicht gemarshallt werden.

    Die Funktion in der DLL Datei hat etwa diesen Aufbau

    struct K
    {
        int x;
    }k[10];
    extern "C" __declspec(dllexport) StrukturDaten * __stdcall Lesen()
    {
        k[0].x = 1;
        k[1].x = 5;
    
       return k;
    
    }
    

    und in der C# Datei

    public struct K
    {
       public int x;
    }
    
       [DllImport("xxx.dll")]			
          unsafe static extern K [] Lesen();
    
    ...
       K [] k = new k[10];
       unsafe 
       {
    	k= GWSearchTargets();
       }
    

    Hoffe ihr könnt mir Helfen, oder soll ich die Strutur Daten anders zurückgeben. z.B. Call by Reference, wenn ja wie wir das gemacht, hier will c# auch nicht mitmachen?


Log in to reply