J'ai un problème avec l'obtention d'informations à partir d'un bloc de mémoire alloué par la fonction appelée. Plus précisément, il y a la fonction XGetWindowProperties
dans la librairie X11 incluse avec JNA. Il renvoie les résultats via le dernier paramètre - PointerByReference prop_return
.Récupération d'un tableau via JNA
Je sais que la zone de mémoire réelle contient un tableau de Window
. Mais comment puis-je créer ces objets? Je ne vois aucun moyen de l'obtenir à partir du pointeur lui-même et je ne peux pas obtenir un Buffer
à partir de lui, puisque je ne connais pas la taille de Window
. La vraie fonction est: int XGetWindowProperty(...., unsigned char **prop_return)
et avec les paramètres que je l'appelle, c'est en fait int XGetWindowProperty(...., Window *prop_return[])
.
Alors que cela résout mon problème immédiat, j'aimerais toujours voir une solution générale: comment passer de PointerByReference à un tableau de types mappés natifs connus. – viraptor
ouais, je ne peux pas répondre à la question de la JNA, seulement la question Xlib. fwiw "Window" est juste un ID entier, ce n'est pas un objet dans un sens significatif. –