Bonjour
Encore un petit truc pour lequel j'ai pas l'expérience en cSharp
Je dois apeller une fonction qui me va me rendre un tableau de structure et le nombre d'elements de ce tableau
Comment dois je declarer ce tableau dont je ne connais pas encore la longueur pour le passer a ma fonction
Exemple pratique de la fonction d'allocation
La question est : Comment appeller RoadPntById() en lui passant un array de type PntF dont je ne connais pas la longueur ?
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
16
17
18
19
20
21
22
23
24
25
26
27
28 public struct PntF { public double X; public double Y; }; // ***************************************************** unsafe static public int RoadPntById() { char ch = (char)1; IntPtr hBcta = (IntPtr)0; UInt32 attrId = 1039; int count; PntF* P; Routing.bctaOpen(ref hBcta, Environ.RoutingDataPath, ch); attrId = 8967209; // j'appelle une DLL qui alloue son propre buffer P et me rends un pointeur count = bctaGetElemNodes(hBcta, attrId, out P); // je m'empresse de recopier le resultat de la DLL dans mon environnement cSharp PntF[] nP = new PntF[count]; for (int i = 0; i < count; i++) { nP[i] = P[i]; } // Je ferme la DLL qui désaloue ses buffer Routing.bctaClose(hBcta); return 0; }
Merci pour votre aide .
Partager