Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Marshal d'une structure contenant un tableau de taille fixed d'un autre struture(MyStruct[X])

1 réponse
Avatar
Cyril
Bonjour

J'ai un probleme pour faire le marhal d'un struture contenant un
tableau de taille fixed d'une autre struture. Le probleme est que ce
tableau doit avoir une taille fixe (MyStruct[2] myStructs et pas
MyStruct *myStructs).

Par exemle :

Declaration C :
struct Point {
int x;
int y;
}

struct Line {
Point[2] points;
int id;
}


Pour la declaration C#, j'ai utilise la declaration suivante mais sans
succes :
[StructLayout(LayoutKind.Explicit)]
public struct Point
{
[FieldOffset(0)] public int x;
[FieldOffset(4)] public int y;
}

[StructLayout(LayoutKind.Explicit)]
public struct Line
{
[FieldOffset(0)] [MarshalAs(UnmanagedType.ByValArray, SizeConst=2)]
public Point[] points;
[FieldOffset(8)] public int id;
}

J'ai essaye d'autre declaration mais je ne suis pas arrive a trouver
une solution.

Si vous avez la solution ou des consiels pour y arriver je vous remerci
d'avance.

Cyril

PS : Si vous avez la solution en VB je suis qu'en meme preneur :-)

1 réponse

Avatar
Tsunoo Rhilty
> J'ai un probleme pour faire le marhal d'un struture contenant un
tableau de taille fixed d'une autre struture.



Tu "adaptes" une structure C en C# et ca ne marche pas (à cause de la pile
mais là j'abbrège).
La solution est simple:
Plutôt que

Declaration C :
struct Point {
...
struct Line {
etc..



utilise tout simplement "class".
Donc
class Point
et
class Line
{
Point[2] points = new Point();
}

Bonne chance