Déclaration sous VB.NET - Galère buffer !! [Résolu]

Signaler
Messages postés
91
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
3 décembre 2011
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Voila,
j'ai la fonction suivante :



Public
Sub Connect()
V_Busy =
True
V_Connected =
False
hOpen = InternetOpen("Transfert", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hConnection = InternetConnect(hOpen, V_URL, V_Port, V_User, V_Pass, INTERNET_SERVICE_FTP, IIf(ModePassif, INTERNET_FLAG_PASSIVE, 0), 0)
sOrgPath =
New
String(
CChar(" "), MAX_PATH)
FtpGetCurrentDirectory(hConnection, sOrgPath, Len(sOrgPath))

Call Resolve()

If Left(sErr, 3) = "257"
Then
V_Connected =
True
Else
V_Connected =
False
End
If
V_Busy =
False
End
Sub

avec les déclarations suivnates :
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Long

Et bien ça marche pas mais pas du tout à la ligne : FtpGetCurrentDirectory
mon buffer sOrgPath reste toujours vide ! je ne comprends pas pourquoi. Mes déclarations du buffer semble bien conforme à vb.net mais il est toujours vide.

Pourtant cet appel fonctionne à merveille sous vb6.
Si quelqu'un peut m'aider...

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !

Pensez à cliquer sur réponse acceptées quand votre problème est solutionné.

1 réponse

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
14
salut,

déjà, il faut remplacer tous les Long (64bits en VB.Net) par Integer (32bits en VB.Net)
et Integer par Short...

moi je mettrais :

Dim lpdwLen as integer
lpdwLen = Len(sOrgPath)
FtpGetCurrentDirectory(hConnection, sOrgPath, lpdwLen)

ShareVB
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci