[VB6] Runtime error 5 on MsgBox?

Pagina: 1
Acties:

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Ik heb een beetje vaag probleem. Op een bepaalde aanroep van MsgBox dan krijg ik een Runtime 5 error. Deze foutmelding komt alleen in de compileerde versie voor en niet binnen de IDE! Dus debuggen is een ramp. Aangezien compileren hier al 5 minuten duurt :(. Compilatie is met Option Explicit. Deze code staat in een functie binnen een form.


Ik heb de volgende code ( stukje ), extra comments toegevoegd voor jullie gemak.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
' LogFile maakt log entries in de database 
' DEBUGME 5 staat in the log tabel 
            LogFile "DEBUGME 5"
' Einde van een for loop  deze loopt correct door
    Next Rctr
' DEBUGME 4 staat in the log tabel 
    LogFile "DEBUGME 4"
    If SuccessFull > 0 Then
' Successfull is een INT met de waarde 1, en staat in de log tabel
' Ik krijg ook de melding als ik deze call naar de logfile uitcomment
        LogFile CStr(SuccessFull) & " Customer Records Authorised "
' Hier krijg ik een de runtime foutmelding, zodra ik die weg druk
' dan krijg ik nog wel TEST te zien
        MsgBox "TEST"
' Applicatie is gecrasht en gestopt.
        MsgBox CStr(SuccessFull) & " Record(s) Authorised", vbInformation , App.Title & " -  Customer Authorise (list)"
    End If
    LogFile "DEBUGME 1"


Boven in de functie staat een " on error goto eh " en die label bestaat ook.

Dit probleem doet zich voor in development en test omgeving. In de live environment is deze versie nog niet gereleased. Vanwege de duidelijke redenen.

De error message die ik letter krijg:
Run-time error '5':
Invalid procedure call or argument

Iemand een idee wat het zou kunnen zijn?

[ Voor 25% gewijzigd door LuCarD op 04-11-2005 17:16 ]

Programmer - an organism that turns coffee into software.


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 09-04 16:10
Gebruikt je IDE versie exact dezelfde bestanden als je gecompileerde versie? Of zijn er bijvoorbeeld andere log-bestanden?

Zo nee, zorg eerst eens dat de applicaties dezelfde bestanden gebruiken met dezelfde inhoud, dan weet je direct of het daar aan kan liggen...

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
exact dezelfde log files en database

Programmer - an organism that turns coffee into software.


Verwijderd

LuCarD schreef op vrijdag 04 november 2005 @ 17:07:
Ik heb de volgende code ( stukje ), extra comments toegevoegd voor jullie gemak.

Visual Basic:
1
2
3
    If SuccessFull > 0 Then
' Successfull is een INT met de waarde 1, en staat in de log tabel
' Ik krijg ook de melding als ik deze call naar de logfile uitcomment
Ik zou de definitie van SuccessFull even controleren.
En controleer ook even op alle plaatsen waar SuccessFull (niet goed) toegekend wordt. Misschien dat er ergens een niet-INT aan toegekend wordt.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Verwijderd schreef op vrijdag 04 november 2005 @ 23:29:
[...]

Ik zou de definitie van SuccessFull even controleren.
En controleer ook even op alle plaatsen waar SuccessFull (niet goed) toegekend wordt. Misschien dat er ergens een niet-INT aan toegekend wordt.
SuccessFull is een Int en word correct geupdate.

Programmer - an organism that turns coffee into software.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Probeer het project eens te compileren zonder optimalisaties of naar P-code. Als dan de foutmelding wegblijft loop je tegen een bug aan in de compiler mbt de volgorde van evalueren van samengestelde expressies.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Truukje om fouten in gecompileerde versies te traceren :
Gebruik regelnummers ( dus ouderwets 10, 20, 30 etc. etc. ). Met de (niet gedocumenteerde versie) functie ERL kun je dan in een errorhandler uitlezen in welke regel de fout is opgetreden en deze in een msgbox weergeven.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Niesje schreef op maandag 07 november 2005 @ 10:39:
Probeer het project eens te compileren zonder optimalisaties of naar P-code. Als dan de foutmelding wegblijft loop je tegen een bug aan in de compiler mbt de volgorde van evalueren van samengestelde expressies.
Ik krijg de foutmelding ook in P-code of compilatie zonder optimalisatie.
Verwijderd schreef op maandag 07 november 2005 @ 10:46:
Truukje om fouten in gecompileerde versies te traceren :
Gebruik regelnummers ( dus ouderwets 10, 20, 30 etc. etc. ). Met de (niet gedocumenteerde versie) functie ERL kun je dan in een errorhandler uitlezen in welke regel de fout is opgetreden en deze in een msgbox weergeven.
Zo ver ik kan zien gaat hij nooit de errorhandler in. Dus ik kan dan ook de ERL niet uit lezen.

Programmer - an organism that turns coffee into software.

Pagina: 1