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

Le
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 :-)
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Tsunoo Rhilty
Le #12303671
> 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
Poster une réponse
Anonyme