Il linguaggio Visual Basic di Microsoft
 

Errore subdolo

Greg 11 Giu 2015 21:24
Parliamo di vb6 che è meglio :)

Alla fine sono riuscito ad isolare una riga di codice che restituiva un
errore di overflow solo su alcuni computer. Questa è la riga:

If ret <> 0 Then SetAttr App.Path & "\" & sFile, vbNormal

Allora ho provato a modificare la riga in:
If ret <> 0 Then SetAttr App.Path & "\" & sFile, 0

ho ricompilato e spedito l'eseguibile all'utente con il problema e
l'errore overflow pare sparito. Quindi oo risolto ma non ho capito come
e perchè. Per me rimare incomprensible perchè dia l'errore solo su
alcune macchine, e ancor di più cosa abbia di diverso la costante
vbNormal da zero. Qualche idea?

--
Greg
SB 12 Giu 2015 12:47
Il giorno Thu, 11 Jun 2015 21:24:43 +0200, Greg <greg@alicie.com> ha scritto:

>Parliamo di vb6 che è meglio :)
Sono d'accordo

>Alla fine sono riuscito ad isolare una riga di codice che restituiva un
>errore di overflow solo su alcuni computer. Questa è la riga:
>
>If ret <> 0 Then SetAttr App.Path & "\" & sFile, vbNormal
>
>Allora ho provato a modificare la riga in:
>If ret <> 0 Then SetAttr App.Path & "\" & sFile, 0
>
>ho ricompilato e spedito l'eseguibile all'utente con il problema e
>l'errore overflow pare sparito. Quindi oo risolto ma non ho capito come
>e perchè. Per me rimare incomprensible perchè dia l'errore solo su
>alcune macchine, e ancor di più cosa abbia di diverso la costante
>vbNormal da zero. Qualche idea?

Non so, forse il VbNormal non veniva correttamente compilato, comunque la
funzione SetAttr chiama direttamente l'API SetFileAttributes,
quindi la tua funzione diventerebbe questa, senza passare attraverso il VB


Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA"
(ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long


If ret <> 0 Then SetFileAttributes App.Path & "\" & sFile, 0&

--
ciao
Stefano
Greg 12 Giu 2015 15:31
Il 12/06/15 12:47:21 SB ha scritto:

> Non so, forse il VbNormal non veniva correttamente compilato, comunque la
> funzione SetAttr chiama direttamente l'API SetFileAttributes,
> quindi la tua funzione diventerebbe questa, senza passare attraverso il VB


> Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA"
> (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long


> If ret <> 0 Then SetFileAttributes App.Path & "\" & sFile, 0&

Per adesso va bene, ma appena ci torno su sostituisco sicuramente con
l'api, non ci avevo neanche pensato, mi sembrava una cosa cosi b*****e.

--
Greg

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio Visual Basic di Microsoft | Tutti i gruppi | it.comp.lang.visual-basic | Notizie e discussioni visual basic | Visual basic Mobile | Servizio di consultazione news.