Le desc, au lieu de lui mettre ceci
Code : Tout sélectionner
S08_GetVarL, Array, Long, (MyArrayL.l(1), Num.l)
Long | StdCall
il faut mettre à la place de
Array-->
Long
Mais là ou c'est moins bien et ça ne me plait pas c'est que l'appel de la fonction doit se faire comme ceci (d'où une différence du code PB à préciser dans la doc)
L'appel classique est comme ceci :
Code : Tout sélectionner
Dim AnyArrayL.l(11)
For INC = 0 To 10
AnyArrayL(INC) = INC*10
Next
Global valeur = S08_GetVarL(AnyArrayL(), 4)
Fred dit de passer par une structure, c'est en fait pour avoir un déréférencement du pointeur.
Code : Tout sélectionner
Structure Monpointeur
*pt
EndStructure
Tableau.Monpointeur
Tableau\pt = @AnyArrayL()
L'appel de la fonction se fait comme ceci
On besoin d'avoir l'adresse du tableau pas directement mais par un pointeur. C'est ce que fait l'exemple.
La solution ne me convient pas, ça oblige à bricoler.
Tu fais comme tu veux mais je vais essayer de te proposer une solution, je vois 3 façons de faire, une assez délicate à mettre en oeuvre (bien qu'elle ait ma préférence) car elle utilise la pile, une autre avec une allocation de mémoire et désallocation en quittant le code et la troisième qui me semble la plus simple (?)à mettre en oeuvre et qui utilise une variable déclarée en datasection, c'est cette partie à créer ainsi que l'écriture de la valeur dans cette variable etc.
La difficulté est de retrouver le paramètre du tableau , 1er , 2ème, 3ème, nième paramètre ?
C'est pas encore gagné, bien que normalement ton analyseur retrouve la position du paramètre pour écrire correctement le desc.
Tu en penses quoi ?