Run-time error '5': Invalid procedure call or argument

Iniciado por suarex, 10 Mayo 2011, 02:33 AM

0 Miembros y 1 Visitante están viendo este tema.

suarex

Miren tengo un problema. Tengo 10 computadores y instale mi programa varias veces(mientras le hacia cambios) en los 10, me dio error en 2 computadores y  primero abrio bien el programa lo cerre y cuando lo volvi a abrir me salio el error Run-time error '5': Invalid procedure call or argument El error solo aparece en 2 computadores de los 10



Alguna teoria de la causa de este error???

Aqui el codigo del formload

Código (vb) [Seleccionar]
If Command$ <> "" Then
LabelProt.Visible = True
LabelProt0.Visible = True
Timer13.Enabled = True
Label10.Visible = True
LabelProt.Caption = "CODIGO DE ERROR " & Command$
End If

'cargamos imagenes para la publicidad
   FLBImagenes.Path = App.Path & "\data\publicidad\"
   FLBImagenes.Pattern = "*.jpg;*.png;*.gif;*.jpeg;*.bmp;*.ico"
   Randomize
'Cargamos la imagen de fondo de el listbox en el image1
Image1.Picture = LoadPicture(App.Path & "\data\fnd\fndlb.jpg")
'Fondo para el listbox
Image1.Visible = False
gBGBrush = CreatePatternBrush(Image1.Picture.Handle)
'Subclass the window
oldWindowProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
oldLbx1Proc = SetWindowLong(lstTitulos.hwnd, GWL_WNDPROC, AddressOf NewLbxProc)
'Version del programa'
lblVersion.Caption = "Versión " & App.Major & "." & App.Minor & "." & App.Revision
'Imagen de fondo
Dim Ruta As String
'la ruta de la imagen en el disco
Ruta = App.Path & "\data\fnd\fnd.jpg"
'Le pasamos al método LoadPicture la variable Ruta
frmPpal.Picture = LoadPicture(Ruta)
'Mostramos a quien esta registrada la licencia
crlf$ = Chr(13) & Chr(10)
licencia.Caption = ""
Open App.Path & "\data.rockola" For Input As #1
While Not EOF(1)
Line Input #1, file_data$
licencia.Caption = licencia.Caption & file_data$ & crlf$
Wend
Close #1
'Establece las tipografias
lblmin.Font = "Digital-7"
lblsec.Font = "Digital-7"
lbldospuntos.Font = "Digital-7"
txtSeleccion.Font = "Digital-7"
'Elimina los bordes del listbox
Call Establecer_Borde(lstTitulos, Me, &HC0C0C0, vbBSDot, 1)

seba123neo

Hola, mira manera facil para sber donde esta el error, enumerar las lineas y usar Erl() que te dice la linea exacta del error. abria que ver que hay en esas funciones a las que apunta los 2 AdressOf que tenes ahi. pero proba lo que te digo, en unos minutos sabes que es lo que esta pasando.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

suarex

Cita de: seba123neo en 10 Mayo 2011, 06:20 AM
Hola, mira manera facil para sber donde esta el error, enumerar las lineas y usar Erl() que te dice la linea exacta del error. abria que ver que hay en esas funciones a las que apunta los 2 AdressOf que tenes ahi. pero proba lo que te digo, en unos minutos sabes que es lo que esta pasando.

saludos.

interesante, pero tendria que enumerar todas las lineas???

seba123neo

podes enumerar las que quieras, aca te paso un simple ejemplo que tira error de desbordamiento y muestra la linea del error:

Código (vb) [Seleccionar]
Private Sub Form_Load()

   On Error GoTo Errores
   
1     Dim i As Integer

2     i = 20
     
3     i = 10000
   
4     i = 9999999999
   
5     Exit Sub
   
Errores:
       MsgBox "El error se produjo en la linea: " & Erl
End Sub


aca estan todas enumeradas, pero si queres podes solo enumerar las que vos sospechas que tiran error.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

BlackZeroX

.
yo te recomendaría la forma mas fácil para mi llevar un vb6 portable ejecutarlo y abrir en esa pc tu código, revisar y hacer un debug en el IDE en esa pc ( de manera veloz, pero no te pongas a re-programar hay amenos que lo requieras claro ), la opción mas pesada es la que menciono Seba123Neo.

Temibles Lunas!¡.
The Dark Shadow is my passion.

seba123neo

#5
si mi simple solucion es pesada, entonces que sera de bajarse el visual basic 6 que ya pesa mas que el ejecutable de la aplicacion de este usuario, ejecutarlo en la maquina (si anda) porque los portables son un desastre, pasar el codigo fuente a la maquina, y hacer el debug ahi. creo que esta solucion en una empresa de desaroolo de software no se implementaria mucho que digamos  :xD.

PD: esas pc que te tira el error tiene un windows distinto a las otras que anda ?
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

BlackZeroX

#6
Mi método no es para una empresa de software claro esta ya que si fuera asi lo mas recomendable seria hacer Volcar los registros de la pila hasta el proceso X que causo el error, junto con las variables implicadas y asi mandarlo por TCP/IP a un host, pero de hecho me dio la impresión que es para un cyber (el tramo de código no me dio ni siquiera el aire de que esta siendo desarrollado para una empresa, pero si para un cyber o similar donde se tienen las PC al alcance).

Por otro lado el método que mansionas y mi método tienen desventajas claro, el tuyo así por un msgbox solo te dice la linea con un poco mas de información que elijas a mostrar y el mio que tienes que llevar un EXE y el Source e instalar OCX necesarias si son requeridas y si se tiene una fea dependencia a las mismas, pero he hay una subclasificacion ( que quien sabe que haya en ese proceso, ni si esta siendo restaurado el oldWinProc de ambas subclasificaciones al termino de su función principal ).

P.D.: quien sabe si le llegue a atinar con este enlace: http://support.microsoft.com/kb/290887

Dulces Lunas!¡.
.
The Dark Shadow is my passion.

suarex

El programa no es para un cyber, es un reproductor de audio y video y todas las pcs tienen xp sp3.
Implementaré sus recomendaciones. Muchas Gracias, Buen foro.