Utilisation zone de mémoire ("pointer")

fredou1982 Messages postés 7 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 2 juin 2004 - 2 juin 2004 à 10:04
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 25 juin 2004 à 20:31
Bonjour,

voila j'utilise une fonction d'une API (contenu dans une dll) afin de récuperer des données presents sur une carte.
Mon probleme est que la fonction renvoie l'adresse du pointeur sur la zone de memoire (dans une variable "DataOut") et je ne sais pas comment l'exploiter.

Si j'affiche DataOut, j'ai un 0.
Et lorsque j'utilise VarPtr(DataOut) et StrPtr(DataOut) j'ai bien une serie de chiffre qui doit surement correspondre à l'adresse du pointeur, mais les chiffre sont differents pour les deux fonctions et je ne sais pas trop laquelle utilisée...
De plus même si je recupere l'adresse je ne sais pas quoi en faire pour obtenir mes données.( c'est bcp plus simple les pointeur en c++...)
J'ai essayé avec "CopyMemoryRead" mais cela me renvoie une chaine vide.

Voila est ce que qqun peut m'aider ou me donner des conseils pour l'utilisation de zone memoire?

1 réponse

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
25 juin 2004 à 20:31
salut

est-ce que tu peux donner le protype de la fonction en C++ pour que je puisse mieux comprendre de quoi il retourne et la convertir en VB

VarPtr renvoie l'adresse de la variable sauf String.
StrPtr renvoie l'adresse des données de la chaine et n'importe quoi si ce n'est pas une variable String.

si ta fonction attend un pointeur
soit elle attend juste le pointeur et c'est elle qui alloue la mémoire : passe dataout en byref as long
soit elle attend un tampon : crée Dataout comme un tableau de taille définie et passe en byval varptr(dataout(0))

voilà

ShareVB
0