Dll

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Dll

Message 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 !???
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message 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.
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message 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, " ")
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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. :idea:
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message 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. :idea:
merci :)
et si tu veus recuperer les valeur en valeur numerique, il te suffit d'utilise Val() ;)
Répondre