Valeur Alphabetique retourné pâr une dll

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Valeur Alphabetique retourné pâr une dll

Message par LOULOU25 »

Comment faire pour récuperer une valeur alphabétique retourné par une fonction dans une dll , pure basic ne retournant que des valeurs numérique. ?
Un exemple de programmation concret m'aiderait beaucoup a avancer.
Merci par avance
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

une valeur alphabetique ?... donne un exemple pour voir...
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Ne sachant pas si tu as fait la DLL ou pas, je te propose les deux :

Si c'est toi qui fait la DLL, il faut faire

Code : Tout sélectionner

ProcedureDLL Lettre()
  Global Lettre.s
  Lettre = "Voici une chaine de caractères"
  ProcedureReturn @Lettre ; Renvoi le pointeur de la chaine de caractères
EndProcedure
Et pour récupérer dans ton programme

Code : Tout sélectionner

Recuperation.s = PeekS(CallFunction(#Librairie,"Lettre"))
Debug Recuperation
Je pense que lorsque tu n'écris pas la DLL, le deuxième code fonctionne aussi mais je n'ai jamais testé.


Par contre, je n'ai pas testé ce code mais c'est comme ça que je procède (il ce peut qu'il y ai une erreur au niveau du nom d'une procédure :oops: )

Oliv
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Il faut que tu saches que les valeurs alphabétiques sont aussi des valeurs numériques, il faut procéder comme Oliv te l'a présenté dans le cas d'une chaîne de caractère retournée par une Dll.


:)
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

En fait j'utilise une dll que je n'ais pas fabriqué
Un exemple
CallFunction(0,"AU3_WingetTitle","","")
Normalemetn en retour de cette fonction je devrais avoir le nom de la fenetre active mais en fait je n'ais qu'une valeur numérique
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Oui, mais toi tu fais comment pour récupérer ta valeur?
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

Justement je ne sais pas comment faire car si je code comme suit
toto=CallFunction(0,"AU3_WinGetTitle","","")
je recupére une valeur numérqiue dans toto alors que normalemetn il devrait y avoir le titre de la fenetre
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

et si tu fais toto.s, tu obtiens quoi?
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

J'obtiens une valeur numérique sur 5 chiffres exemple 15645
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

C'est bizarre, je ne sais pas et si tu remplace tes chaînes null par 0, ca donne quoi, en gardant toto.s?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai oublié, il te faut au préalable initialiser ta chaîne de caractère pour qu'elle soit capable de recevoir les données, donc on va lui donner une certaine longueur avec space().

En voici un exemple:

Code : Tout sélectionner

;Avec AutoItDLL version v1.11

szTitle.s=Space(100)

If OpenLibrary(0,"AutoitDll")
  CallFunction(0,"AUTOIT_WinGetActiveTitle",@szTitle)
  MessageRequester("info", szTitle)
  CloseLibrary(0)
EndIf
Autre chose importante, avec cette fonction, tu seras obligé de créer un exécutable si tu veux vérifier que ça marche.

J'espère que ça va t'aider!

:)
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

J'utilise la derniére version de AUTOIT 3.0.103 avec cette version cela ne marche pas Je te joins la DLL si tu veux.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je l'ai téléchargé mais je n'y arrive pas!

J'ai toujours un message d'erreur!
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

nico a écrit :Je l'ai téléchargé mais je n'y arrive pas!

J'ai toujours un message d'erreur!
J'ai vu qu'il y avait également un fichier .lib avec un fichier H , représentant également les mêmes fonctions que dans la dll , que peux-ton en faire avec pure basic ?
Répondre