Bonjour,
Je souhaiterais marshaller la structure C++ suivante
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct MyStruct { int i1; BYTE array[20] int i2; };
cette structure c++ fait 28 octects
Voici la solution C# pour laquelle j'avais opté sans succès:
Cette structure fais bien 28 octects, mais le probleme se situe au niveau du tableau de Byte. En effet, ce champs se comporte comme un pointeur vers un tableau de Byte plutot que comme un tableau de Byte "embarqué" dans la structure.
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [StructLayout(LayoutKind.Explicit, Size = 28)] public struct MyStruct { [FieldOffset(0)] public Int32 i; [FieldOffset(4)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] public Byte[] byteArray; [FieldOffset(24)] public Int32 i2; }
Que puis-je faire pour remédier à ce problème ? (Je travail en CF .NET)
Merci pour votre aide![]()
Partager