Bonjour,
Pour communiquer avec une dll qui passe des pointeur de pointeur de structure, je dois créer en C# l'équivalent de ces structures:
les strutures en c:
Voici ce que j'ai crée en c#:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 typedef struct _PointList { Point *m_pPointList; // List of point uint32 m_numPoints; // Number of points ... } PointList; typedef struct _Point { float m_point[3]; // X, Y, Z components of our point } Point;
J'ai autorisé le code unsafe dans mon projet et quand je compile j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 [StructLayout(LayoutKind.Sequential)] public struct PointList { public unsafe Point* m_pPointList; public UInt32 m_numPoints; ... } [StructLayout(LayoutKind.Sequential)] public struct Point { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] public float[] m_point; }
Quelqu'un pourrait il m'aider?Erreur 1 Impossible de prendre l'adresse, d'obtenir la taille ou de déclarer un pointeur vers un type managé ('Frame_3d.Point')
D'avance merci.
Partager