Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18678

Re: [VB6] errore di runtime 5 solo su win XP

From GbC <info@gbcdepot.com>
Newsgroups it.comp.lang.visual-basic
Subject Re: [VB6] errore di runtime 5 solo su win XP
Date 2016-02-04 15:23 +0100
Organization Aioe.org NNTP Server
Message-ID <n8vmsu$ckh$1@gioia.aioe.org> (permalink)
References <n8vlbg$8c0$1@gioia.aioe.org>

Show all headers | View raw


Il 04/02/2016 14:57, carmelo ha scritto:
> Private Type OPENFILENAME
>      lStructSize As Long
>      hwndOwner As Long
>      hInstance As Long
>      lpstrFilter As String
>      lpstrCustomFilter As String
>      nMaxCustFilter As Long
>      nFilterIndex As Long
>      lpstrFile As String
>      nMaxFile As Long
>      lpstrFileTitle As String
>      nMaxFileTitle As Long
>      lpstrInitialDir As String
>      lpstrTitle As String
>      flags As Long
>      nFileOffset As Integer
>      nFileExtension As Integer
>      lpstrDefExt As String
>      lCustData As Long
>      lpfnHook As Long
>      lpTemplateName As String
> End Type
> Private OFName As OPENFILENAME
>
> Dim FilePath As String
> FilePath = Left$(OFName.lpstrFile, OFName.nFileOffset - 1)
>
> Mi sapreste dire perchè la riga sopra, su Win XP mi da errore di runtime
> 5: chiamata di routine o argomento non valido.
>
> Mentre su Vista, Seven e win 8 funziona regolarmente.
>
> Carmelo


A) Metti un breakpoint prima dell'istruzione incriminata e controlli il 
contenuto delle due stringhe.

debug.print "lpstrFile|" & OFName.lpstrFile & "|"
debug.print "nFileOffset|" & OFName.nFileOffset & "|"
stop
' riga esistente
FilePath = Left$(OFName.lpstrFile, OFName.nFileOffset - 1)

B) In alternativa aggiungi una messagebox che mostri il contenuto delle 
due stringhe, magari controllando con un parametro nella command-line se 
vuoi visualizzare i messaggi o no. Può anche essere utile in altri casi.

Setti una variabile globale booleana in un modulo .bas

global myDebugMODE as boolean

nel form di avvio (o quel che è) controlli se è stato attivato il debug, 
che si attiverà indicando come parametro nella commandline la parola -debug

if instr(1,command,"-debug",1) > 0 then myDebugMODE = true

(lo so che si può fare meglio ma per ora va bene lo stesso)

prima di eseguire la linea incriminata metti un

if myDebugMODE = True then
	MsgBox "lpstrFile|" & OFName.lpstrFile & "|" & vbnewline & _
	       "nFileOffset|" & OFName.nFileOffset & "|" , _
		vbinformation, _
		"myDebugMODE: FilePath"

end if

' riga esistente
FilePath = Left$(OFName.lpstrFile, OFName.nFileOffset - 1)


Così cosa è che genere quell'errore.

-- 
GbC
www.gbc.uno

Back to it.comp.lang.visual-basic | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

[VB6] errore di runtime 5 solo su win XP carmelo <carmelo.giu@alice.it> - 2016-02-04 14:57 +0100
  Re: [VB6] errore di runtime 5 solo su win XP GbC <info@gbcdepot.com> - 2016-02-04 15:23 +0100
    Re: [VB6] errore di runtime 5 solo su win XP carmelo <carmelo.giu@alice.it> - 2016-02-04 17:49 +0100
      Re: [VB6] errore di runtime 5 solo su win XP Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2016-02-04 18:04 +0100
      Re: [VB6] errore di runtime 5 solo su win XP Luca D <antaniserse@yahoo.it> - 2016-02-04 10:16 -0800
      Re: [VB6] errore di runtime 5 solo su win XP "salclem2" <salclem2@yahoo.it> - 2016-02-04 19:38 +0100
        Re: [VB6] errore di runtime 5 solo su win XP "salclem2" <salclem2@yahoo.it> - 2016-02-04 19:39 +0100
      Re: [VB6] errore di runtime 5 solo su win XP GbC <info@gbcdepot.com> - 2016-02-05 11:05 +0100
        Re: [VB6] errore di runtime 5 solo su win XP carmelo <carmelo.giu@alice.it> - 2016-02-05 14:28 +0100
          Re: [VB6] errore di runtime 5 solo su win XP GbC <info@gbcdepot.com> - 2016-02-05 15:24 +0100
  Re: [VB6] errore di runtime 5 solo su win XP Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2016-02-04 18:07 +0100

csiph-web