Page 1 sur 1
Dll
Publié : jeu. 15/avr./2004 11:56
par nico
Salut,
Je voudrais savoir comment il est possible de retourner plusieurs valeurs dans un DLL en un seul appel et ce sans utiliser de structure !
Cela doit ce faire avec un bloc mémoire, je suppose !???
Publié : jeu. 15/avr./2004 12:01
par Fred
oui, mais c'est pas conseillé. La grand majorité des API demande une structure en paramètre qui sera remplie par la fonction.
Publié : jeu. 15/avr./2004 12:05
par cederavic
ou simplement en renvoyant une chaine de charactere contenenant les valeur a retourner serparer par exemple par un espace, un exemple :
Code : Tout sélectionner
proceduredll.s test()
procedurereturn "12 14 15"
endprocedure
et pour essayer :
Code : Tout sélectionner
openlibrary(0, "blababla")
res.s = peeks(callfunction(0, "test"))
debug stringfield(res, 1, " ")
debug stringfield(res, 2, " ")
debug stringfield(res, 3, " ")
Publié : jeu. 15/avr./2004 20:41
par nico
Je posais la question car j'ai vu que Blitz Basic utilise la mémoire pour envoyer et recevoir plusieurs valeurs.
Complètement déroutant au départ, et finalement très simple et efficace à l'utilisation.
cederavic, ton exemple est intéressant à plus d'un titre car il permet d'envoyer des chaines de caractères et des valeurs numériques en même temps et simplement.

Publié : jeu. 15/avr./2004 22:40
par cederavic
nico a écrit :Je posais la question car j'ai vu que Blitz Basic utilise la mémoire pour envoyer et recevoir plusieurs valeurs.
Complètement déroutant au départ, et finalement très simple et efficace à l'utilisation.
cederavic, ton exemple est intéressant à plus d'un titre car il permet d'envoyer des chaines de caractères et des valeurs numériques en même temps et simplement.

merci

et si tu veus recuperer les valeur en valeur numerique, il te suffit d'utilise Val()
