20
février
2013
[Astuce][Vala] manipulation de tableaux
février
2013
Un article de Rachel
Pas de commentaires
lors de la conversion d’un code Vala en C, les tableaux généreront cette erreur :
Exemple avec ce type de fonction
public void SetUNICODE(uint16[] unicode);
erreur: too many arguments to function SetUNICODE
Ceci est dû au fait que vala converti ce tableau en pointeur suivi d’un entier représentant sa taille, Alors que vous ne voulez que ce tableau
ce qu’il faut faire, convertir ce tableau en pointeur:
public void SetUNICODE(uint16 *unicode);
/**/
uint16[] table;
/**/
SetUNICODE((uint16 *)table);
/**/
uint16[] table;
/**/
SetUNICODE((uint16 *)table);
autre solution, spécifier l’attribut array_length avec la valeur false :
[CCode(array_length = false)]
public void SetUNICODE(uint16[] unicode);
public void SetUNICODE(uint16[] unicode);
et la compilation ne posera pas de soucis et le programme sera fonctionnel