Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 ancora Hashing md5

Ciao a tutti dietro consiglio, ho scaricato il file Xmd5.dll vorrei sapere 
da chi di voi lo ha utilizzato con successo come lo si dichiara in un 
modulo.bas (di VB6) e poi come lo si utilizza da codice in un pulsante ad 
esempio, io ho capito quanto segue, ma qualcosa non và. questa 
documentazione o è sbagliata o sono io che la fraintendo: 
http://belus.com/page.asp?p=B1B5673F-224C-446C-8439-66A70D1D2153&s=8EC4C5CB-E840-4C7B-9D5D-DAE787D7BAC3
Da questo documento nella mia ignoranza di programmatore VB6 alla mia prima 
chiamata di una DLL, ho inteso quanto segue:
1) La funzione ''GetCheckSumFromFile(sPathName As String) As String'' è 
appunto contenuta in questa Xmd5.dll.
2) Sò per sicuro sempre nella mia ignoranza che una DLL. deve o dovrebbe 
essere dichiarata in un MODULO.BAS e così ho fatto.
3) Deve poi essere chiamata da codice passando come parametro ''sPathName'' 
ovvero una stringa con il percorso intero del file.
4) Premetto che la DLL in questione l'ho già piazzata nella stessa cartella 
del mio file .EXE e di fatto viene regolarmente rilevata, ma però...
Ecco come ho agito io nei dettagli:
A) Cosi ho dichiarato la dll e la funzione nel modulo1.bas
-------------------------------------------------------------------------------------------------------
Declare Function GetCheckSumFromFile Lib "Xmd5.dll" (ByVal PathFileName As 
String) As Long
-------------------------------------------------------------------------------------------------------
Domanda, in base alla documentazione riportata nel link di cui sopra, è 
corretta questa dichiarazione nel modulo1.bas della DLL in questione e della 
funzione che utilizzo con questa sintassi oppure ho frainteso qualcosa e non 
si deve dichiarare in questo modo ma in un altro ?
B) Dopodichè in una Sub volevo ottenere l'hash di un file in questo modo:
-------------------------------------------------------------------------------------------------------
Private Sub CmdShowHasc_Click()
Dim ReturnHash As String
Dim PercorsoFile AS String
PercorsoFile="MioFile"
ReturnHash = GetCheckSumFromFile(PercorsoFile) '* tramite questa espressione 
assegno a 'ReturnHash' la stringa Hasc ritornata dalla funzione
MsgBox Resulthash ' ne stampo il risultato a prova di verifica
Exit Sub
-------------------------------------------------------------------------------------------------------
Ecco tutto, invece di ottenere il risultato aspettato nel momento della 
chiamata ottengo l'errore RunTime 453 che mi informa che ''Impossible 
trovare in Xmd5.dll la funzione specificata'' insomma in che caspio ho 
sbagliato ?
Nella dichiarazione del modulo ?
Nella chiamata in runtime ?
O forse in tutto ?
Sono un principiante, scarso in inglese, è la prima volta che ricorro ad una 
DLL, e questo è cio che mi ha suggerito la documentazione dell' unico link 
che ho trovato per questa xmd5.dll, forse ho frainteso qualcosa oppure sono 
nel giusto ed è sbagliata invece questa documentazione ?
Ivan.

 ha
scritto:

Io la utilizzo da tempo per confrontare i files, ed è molto semplice:
Innanzitutto da VB in PROGETTO  >> Riferimenti  carichi la MD5.DLL
-----------------
Poi in Global.BAS devi dichiarare:
Dim hMD5 As New MD5
-------------------
Poi chiami la funzione dal pulsante o da dove ti pare:
Dim MD5F$
MD5F$= hMD5.GetCheckSumFromFile("C:\pippo.txt")
--
ciao
  Stefano

Non funziona qualcosa ancora perchè in Global.bas io ho scritto questo:
Declare Function GetCheckSumFromFile Lib "Xmd5.dll" (ByVal sFileName As 
String) As Long
Dim hMD5 As New MD5
Mi dà questo errore di compilazione: "tipo definito dall'utente non 
definito"
Ma devo tagliarmi le vene, il mio progetto è fermo da 3 giorni.
Per favore non dare nulla per scontato che io sappia, mai utilizzato DLL 
prima d'ora, ho bisogno pertanto
di essere guidato punto per punto, la dichiarazione fatta così in VB6 non è 
corretta,
manca qualcosa che io non sò sempre nel MODULO GLOBAL per cui sono punto a 
capo.

Non funziona qualcosa ancora perchè in Global.bas io ho scritto questo:
Declare Function GetCheckSumFromFile Lib "Xmd5.dll" (ByVal sFileName As 
String) As Long
Dim hMD5 As New MD5
Mi dà questo errore di compilazione: "tipo definito dall'utente non 


definito"
E ci credo, dove la trova la DLL?
Perchè non hai fatto quello che ti avevo scritto nel post precedente?
Apri  VB poi in PROGETTO  >> Riferimenti  carichi la MD5.DLL
Chiaramente la puoi copiare in  Winnt\System 32 o nella directory del progetto,
ma ricorda che se lo distribuisci la dovrai includere nell'installazione.
--
ciao
  Stefano

 definito"
[snip]
www.gbcweb.com/files/Xmd5Test.zip
non è una dll ma un ActiveX, da registrare; quindi copia il file della dll
nella \windows\system e registralo con
regsvr32 xmd5.dll
bau
-> GbC|
www.gbcweb.com

Grazie a tutti, Adesso Va !!
Ivan.