Ich habe eine folgende Struktur in C:Wie mit Zeigern in C# C-Struktur schreiben
typedef struct
{
int mode;
unsigned char *fs;//a pointer to sbyte[16]
unsigned char *flist;//a pointer to sbyte[128]
unsigned char *ival;//a pointer to sbyte[8]
unsigned char *ctx;//a pointer to sbyte[8]
int fin;
} mStruct;
Und ich brauche es in C# zu schreiben. Ich habe versucht, es wie zu definieren:
[StructLayout(LayoutKind.Sequential,Pack=1)]
public struct avGostParam
{
public int mode;//a mode
public IntPtr fs;// does char* converts to IntPtr?
public IntPtr flist;//does char* converts to IntPtr?
public IntPtr ival;//does char* converts to IntPtr?
public IntPtr ctx;//does char* converts to IntPtr?
public int fin;
}
Aber es ist der falsche Weg. Kannst du mir helfen, dies in C# zu übersetzen?
Zeiger verwenden Ich glaube, Sie werden Ihren Code als 'unsafe' und erlauben unsicheren Code in Ihr Projekt Eigenschaften kennzeichnen müssen. –
Nein, 'IntPtr' erfordert nicht 'unsicher' (frag nicht warum) ... Der Code ist korrekt. – xanatos
Warum brauchen Sie Zeiger? Versuchen Sie nur, eine Struktur mit einigen Arrays als Mitglieder zu deklarieren? Wenn ja, verwende Arrays, keine Zeiger. – adv12