Pytanie : C++ dll funkcja od c#

I musieć funkcja w istniejący dll pisać w c++, od mój zastosowanie że I pisać w c#

My problem być ten jeden the parametr ten funkcja być pointer struktura & I móc sposób jeden od c#.

The c++ funkcja pierwowzór być

int DALEKI PASKAL FunctionName (Parameters* param)

the Parametr Struct definiować jako


typedef struct {
int cp;
int tb;
int mapa [8];
dwoisty freq [8,16];
} Parametr;

I pomyślnie dzwonić dll funkcja using pointer zanim ale nigdy pointer struktura który zawierać arrays.

I próbować the następujący c# code


struct Prameters
{
int cp;
int tb;
int [] mapa;
kopia [] freq;
}

and I mieć the następujący funkcja declaration

public statyczny niebezpieczny niebezpieczny int FunctionName (Parameters* param);


My problem być że kompilować dawać kompilacyjny error

Can the adres, the rozmiar, lub pointer kierować typ

If I komentować kierować the szyk w the struct ono kompilować Kierować - ale oczywiście the funkcja fail

Any komentarz być dużo appreciated.

Thanks

Odpowiedź : C++ dll funkcja od c#

Ty móc podążać kod:
 [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        struct Parametr
        {
            int cp;
            int tb;
            [MarshalAs (UnmanagedType.SysInt, SizeConst = 8)]
            int [] mapa;
            [MarshalAs (UnmanagedType.R8, SizeConst = 8)]
            kopia [] freq;          
        }
        [DllImport ("MyDLL.Dll")]
        jawny jawny ładunek elektrostatyczny int FunctionName (ref Parametr param);
Inne rozwiązania  
 
programming4us programming4us