Frage : Benennen von C++ DLL-Funktion vom c#

Ich muss eine Funktion nennen enthalten in einem vorhandenen DLL, das in c++, von meiner Anwendung geschrieben wird, dass ich in c#

My Problem bin dieser der Parameter dieser Funktion bin ein Zeiger zu einer Struktur geschrieben habe u. ich eine Weise des Handelns dies vom c# nicht darstellen kann.

The c++ Funktionsprototyp ist

int WEITE PASCAL FunctionName (Parameters* Param)

the Parameter, die Struct als


typedef struct definiert wird {
int Cp;
int TB;
int Diagramm [8];
doppeltes freq [8.16];
} Parameter;

I haben erfolgreich DLL-Funktionen using Zeiger benannt, bevor aber nie Zeiger zu den Strukturen, die arrays.

I enthalten, das folgende c# code


struct Prameters
versucht haben {
int Cp;
int TB;
int [] Diagramm;
Doppeltes [] freq;
}

and habe ich das folgende Funktion declaration

public statischer unsicherer extern int FunctionName (Parameters* Param);


My Problem ist, dass dieses ein Kompilation error

Can die, gibt Adresse von nicht zu nehmen, die Größe von zu erhalten oder, einen Zeiger zu einer gehandhabten Art

If zu erklären ich heraus die Reihen im struct kommentiere, das sie o.k. kompiliert - aber selbstverständlich wird die Funktion fail

Any Anmerkungen würde sein viel appreciated.

Thanks

Antwort : Benennen von C++ DLL-Funktion vom c#

Sie können versuchen folgen Code:
 [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        struct Parameter
        {
            intcp;
            int-TB;
            [MarshalAs (UnmanagedType.SysInt, SizeConst = 8)]
            int-[] Diagramm;
            [MarshalAs (UnmanagedType.R8, SizeConst = 8)]
            Doppeltes [] freq;          
        }
        [DllImport („MyDLL.Dll“)]
        allgemeiner extern Static int FunctionName (Hinweis-Parameter Param);
Weitere Lösungen  
 
programming4us programming4us