Probleme avec mes variables local

Signaler
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006
-
BLUEBIBUBBLE
Messages postés
116
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
10 avril 2013
-
salut, j'ai une procedure qui utilise 2 variable local :

myFTPListFile proc
LOCAL SRec:WIN32_FIND_DATA
LOCAL hFind:HANDLE

.if (hFTP!=0)
invoke FtpFindFirstFile, hFTP, addr AllFile, addr SRec, 0, 0
invoke SendMessage, hlstFichiers, LB_ADDSTRING, 1, addr SRec.cFileName
.endif

ret
myFTPListFile endp

malheuresement elle ne marche pas, mais quand je met les varialble globale, ca marche :

SRec WIN32_FIND_DATA <>
hFind HANDLE 0

je nutilise cependant nulepart ailleur les variables.

6 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

remplie simplement la structure WIN32_FIND_DATA de 0

@++
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006

ok, mais comment que jfais pour remplir un structure?
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,



invoke RtlZeroMemory,addr SRec,sizeof WIN32_FIND_DATA

@++
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006

ca marche pas, mais tk merci
Messages postés
223
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
15 février 2006

ca marche pas, mais tk merci
Messages postés
116
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
10 avril 2013
1
Il ne faut pas remplir la structure WIN32_FIND_DATA, elle est remplie par FtpFindFirstFile.
Si on veut quant même la remplir:

.DATA? ;Espace allouer lors du chargement de l'exe
SRec WIN32_FIND_DATA <?> ;prend moins de place dans l'exe ;-)

.CODE
xor eax,eax ;EAX=0
lea edi,SRec ;EDI=ADDR Structure
mov ecx,WIN32_FIND_DATA ;ECX=Lg Structure
rep movsb ;Reset tout

mov eax,540
mov SRec.nFileSizeLow, eax
mov SRec.ftCreationTime.dwLowDateTime, 87345