Problème Exécution en Release mais pas en Debug
Bonjour à tous,
Je suis face à un problème que je n'arrive pas à résoudre... J'espère que les pros du VB seront là pour y remédier...
Je suis en train de porter une appli VB6 de Windows 2000 Server vers Windows 2003 Server. POur le moment, tous mes composants passent bien (Dll(s) et Exe(s)) mais j'ai un dernier Exe qui me sert à tester une fonctionnalité du programme.
Ce dernier passe avec succès en mode Debug, mais lorsque je crée l'exe et que je le lance, lorsque j'arrive sur une des fonctionnalités, le programme me sort une erreur : Run-time error '440': Automation error
Je n'arrive pas à comprendre d'où cela peut venir..... Surtout qu'en mode Debug, tout fonctionne à merveille....
Donc je m'en remets à vous... Je ne sais plus où chercher....
En espérant que quelqu'un puisse me venir en aide !!!!
++
Librairies utilisées pour le projet
Voici la liste des librairies utilisées pour le projet :
Visual Basic For Applications
Visual Basic runtime objects and procedures
Visual Basic objects and procedures
OLE Automation
Microsoft XML, v3.0
Microsoft Scripting Runtime
Microsoft Visual Basic 6.0 Extensibility
Microsoft Internet Controls ->(shdocvw.dll)
Microsoft Internet Controls ->(shdocvw.oca)
Microsoft ActiveX Data Objects 2.6 Library
Micsosoft Active Server Page Object Library
Micsosoft Active Server Page ObjectContext Object
TIBCO Rendezvous 7.2 (librairie Tibco qui nous sert à envoyer / recevoir des données temps réel entre applications)
Je ne sais pas si ça peut vous éclairer sur un éventuel problème...???
Je me remets au boulot pour trouver la résolution de ce problème !!
++
Avancée dans l'analyse de l'erreur
Citation:
J'aimerais bien avoir plus d'info la dessus : Fait tu play avec ou sans point d'arrêt.
En gros est ce que cela à déjà fonctionner en mode débug sans mettre de point d'arrêt ?
Oui, cela fontionne avec ou sans point d'arrêt indéfféremment, quand je le lance en faisant "Play" dans VisualStudio6.
Citation:
Je vais commencer à les mettre et je vous donne des news...
Je viens de trouver le moment exact où ça plante.
J'explique rapidement comment fontionne le programme. Il y a des boutons sur le form et on a des boutons qui sont actifs ou inactifs suivant le stade d'avancement (il y a par exemple un bouton Create, Puis un bouton Initialiser qui s'active quand le Create a fini, etc...)
A un moment, je fais un Load File, et il passe dans le code ci-dessous
Tout se passe bien pour le moment (tm a un state = 2)
Puis je clique sur un autre bouton, et tm a toujours state = 2 (c'est voulu que le state de tm ne change pas entre les deux clics)
Donc je repasse au même endroit, je rentre bien dans le if
Et il se plante sur le "LastTimeLabel.Caption = "NO VALUE AVAILABLE""
Pour mémoire, Je me retrouve avec une erreur :
Run-time error '440':
Automation error
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
If tm.GetState = 2 Then
LastTimeLabel.Caption = "NO VALUE AVAILABLE"
If lt2 = -1 Then
LastTimeValideLabel.Caption = "NO VALUE AVAILABLE"
Else
LastTimeValideLabel.Caption = CStr(lt2) & " s" & ", " & CStr(lt2 / LastDealCount) & " s/deal"
End If
Frame2.Enabled = True
Frame2.Caption = "Lot en cours - " & tm.GetCurrentTKBlockID
'Frame3.Enabled = True
'LogGrid.Visible = True
StatusLabel.ForeColor = &HC000&
StatusLabel.Caption = "(2) TRANSACTING"
CreateBtn.Enabled = False
InitBtn.Enabled = False
BeginBtn.Enabled = False
PriceBtn.Enabled = True
RollbackBtn.Enabled = True
CommitBtn.Enabled = False
CancelPriceBtn.Enabled = False
DestroyBtn.Enabled = True
SaveBtn.Enabled = True
LoadBtn.Enabled = True
CopyBtn.Enabled = True
PasteBtn.Enabled = True
LoadDealBtn.Enabled = True
UpdateDealBtn.Enabled = False
RemoveDealBtn.Visible = True
AddDealBtn.Visible = True
AddDealBtn.Enabled = True
InstrCombo.Visible = True
DealList.Visible = True
ViewerBtn.Visible = True
Viewer2Btn.Visible = True
Exit Sub |
Petite précision sur l'analyse de l'erreur
Je viens de tester de mettre en commentaire le
"LastTimeLabel.Caption = "NO VALUE AVAILABLE""
A ce moment là il plante sur le suivant (LastTimeValideLabel.Caption = "NO VALUE AVAILABLE")
et ainsi de suite.......
++