Vraag : het roepen van C++ dll functie van c#

Ik moet een functie roepen in bestaan dll geschreven in c++, van mijn toepassing dat ik in/>My probleem c#


The c++ het functieprototype is

int Parameters

the Struct wordt de VERRE van PASCAL FunctionName (Parameters* param) gedefini�ërd als


typedef struct {
int. cp;
int. tb;
int. kaart [8]; /> dubbele freq
} Parameters
I heeft met succes dll functies gebruikend wijzers geroepen vóór maar nooit hebben de wijzers aan structuren die arrays.

I bevatten volgende c# code


struct Prameters
geprobeerd {
int. cp;
int. tb;
int. [] kaart; /> dubbel
}

and heb ik de volgende functie declaration

public statisch onveilig extern int. FunctionName (Parameters* param); />My het probleem



niet kan het adres van nemen, de grootte van krijgen, of een wijzer aan een beheerde type
If I commentaar/>

Any- commentaren zou zijn veel appreciated.

Thanks

Antwoord : het roepen van C++ dll functie van c#

U kunt proberen volgt code:
 [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        struct Parameters
        {
            int. cp;
            int. tb;
            [MarshalAs (UnmanagedType.SysInt, SizeConst = 8)]
            int. [] kaart;
            [MarshalAs (UnmanagedType.R8, SizeConst = 8)]
            dubbel [] freq;          
        }
        [DllImport („MyDLL.Dll“)]
        openbaar extern statisch int. FunctionName (refParameters param);
Andere oplossingen  
 
programming4us programming4us