Tableau de structure en C et une classe en C#
Bonjour,
J'aurai aimé savoir si il était possible d'échanger entre une dll developpée en C et un programme C# un tableau de structure.
Rien ne vaut un exemple pour ce faire comprendre :
structure en C :
Code:
1 2 3 4
|
typedef struct Entree{
int numseq;
}Rec; |
Fonction C :
Code:
1 2 3 4 5
| extern "C" __declspec(dllexport) void * Hello()
{
Rec * s = (struct Entree*)malloc(4*sizeof(struct Entree));
return s;
} |
Coté C# :
Ma classe correspondante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [StructLayout(LayoutKind.Sequential)]
public class Entree
{
public Int32 numseq;
}
Fonction C# réalisant le marshaling :
private void button1_Click(object sender, System.EventArgs e)
{
IntPtr handle = Hello();
AdresseIn[] s = new AdresseIn[10];
s[0] = new AdresseIn();
s[1] = new AdresseIn();
s[2] = new AdresseIn();
s[3] = new AdresseIn();
Marshal.PtrToStructure(handle, s);
} |
Erreur lors de l'execution :
La structure specifié doit etre blittable ou avoir des informations de disposition.
Je ne vois pas l'erreur 8O
Merci de votre aide