OVH Cloud OVH Cloud

Run Time error

5 réponses
Avatar
Gandalf
Bonjour,

J'ai un souci lorsque je lance un programme développé en VB6 sous certaines
machines XP Pro SP2. Le problème c'est que ça n'arrive pas
systématiquement....
Difficile de trouver une cause donc :

Voilà le message d'erreur qui apparaît :
RUN-TIME ERROR '_2147023782(8007045a). Automation error

Si vous avez une idée du souci...merci d'avance.

5 réponses

Avatar
Jacques93
Bonjour Gandalf,
Gandalf a écrit :
Bonjour,

J'ai un souci lorsque je lance un programme développé en VB6 sous certaines
machines XP Pro SP2. Le problème c'est que ça n'arrive pas
systématiquement....
Difficile de trouver une cause donc :

Voilà le message d'erreur qui apparaît :
RUN-TIME ERROR '_2147023782(8007045a). Automation error

Si vous avez une idée du souci...merci d'avance.




En indiquant quels objets Automation tu utilises, soit par les
références, soit par CreateObject par exemple, cela donnerait peut être
une piste ;-)

--
Cordialement,

Jacques.
Avatar
Gandalf
Salut,

Voilà donc par les références, sous Visual Basic 6.0, j'observe que
j'utilise les composants suivants :
- Visual Basic for Applications
- Visual Basic Runtime objects and procedure
- Visual Basic objects and procedures
- OLE Automation
- Microsoft Data Formatting Object Library 6.0 (SP 6.0)
- Microsoft Scripting Runtime

Mais maintenant comment savoir quelle référence est associée à ce numéro
d'erreur ?

Merci pour tout complément d'information.

"Jacques93" a écrit :

Bonjour Gandalf,
Gandalf a écrit :
> Bonjour,
>
> J'ai un souci lorsque je lance un programme développé en VB6 sous certaines
> machines XP Pro SP2. Le problème c'est que ça n'arrive pas
> systématiquement....
> Difficile de trouver une cause donc :
>
> Voilà le message d'erreur qui apparaît :
> RUN-TIME ERROR '_2147023782(8007045a). Automation error
>
> Si vous avez une idée du souci...merci d'avance.
>

En indiquant quels objets Automation tu utilises, soit par les
références, soit par CreateObject par exemple, cela donnerait peut être
une piste ;-)

--
Cordialement,

Jacques.



Avatar
Jacques93
Bonsoir Gandalf,
Gandalf a écrit :
Salut,

Voilà donc par les références, sous Visual Basic 6.0, j'observe que
j'utilise les composants suivants :
- Visual Basic for Applications
- Visual Basic Runtime objects and procedure
- Visual Basic objects and procedures
- OLE Automation
- Microsoft Data Formatting Object Library 6.0 (SP 6.0)
- Microsoft Scripting Runtime

Mais maintenant comment savoir quelle référence est associée à ce numéro
d'erreur ?




Je dirai, probablement l'une des deux dernières, avec une préférence
pour Scripting (je n'ai jamais utilisé Data Formatting) :

Le fichier MSSTDFMT.DLL (Microsoft Data Formatting Object Library 6.0
(SP 6.0)) est il bien installé, enregistré ... ?

La version de WSH est elle bien la même ?

Une des méthodes possibles est de mettre en place une gestion d'erreur
dans les procèdures :

Private Sub Sub Toto ()

On Eror Goto Toto_Error

[...]
Exit Sub

Toto_Error:
MsgBox "Erreur : " & Err.Description & " (" & Err.Number ")" & _
VbCrLf & "Procèdure : Toto"
End Sub


et/ou inscrire de messages de trace dans un fichier log,
tout en essayant d'affiner au fur à mesure pour isoler l'erreur.

--
Cordialement,

Jacques.
Avatar
Gandalf
OK, comment puis-je savoir si une dll est bien enregistrée sous Windows XP ?
Qu'est-ce que vous entendez par version de WSH ?

Merci pour toute information complémentaire.

"Jacques93" a écrit :

Bonsoir Gandalf,
Gandalf a écrit :
> Salut,
>
> Voilà donc par les références, sous Visual Basic 6.0, j'observe que
> j'utilise les composants suivants :
> - Visual Basic for Applications
> - Visual Basic Runtime objects and procedure
> - Visual Basic objects and procedures
> - OLE Automation
> - Microsoft Data Formatting Object Library 6.0 (SP 6.0)
> - Microsoft Scripting Runtime
>
> Mais maintenant comment savoir quelle référence est associée à ce numéro
> d'erreur ?
>

Je dirai, probablement l'une des deux dernières, avec une préférence
pour Scripting (je n'ai jamais utilisé Data Formatting) :

Le fichier MSSTDFMT.DLL (Microsoft Data Formatting Object Library 6.0
(SP 6.0)) est il bien installé, enregistré ... ?

La version de WSH est elle bien la même ?

Une des méthodes possibles est de mettre en place une gestion d'erreur
dans les procèdures :

Private Sub Sub Toto ()

On Eror Goto Toto_Error

[...]
Exit Sub

Toto_Error:
MsgBox "Erreur : " & Err.Description & " (" & Err.Number ")" & _
VbCrLf & "Procèdure : Toto"
End Sub


et/ou inscrire de messages de trace dans un fichier log,
tout en essayant d'affiner au fur à mesure pour isoler l'erreur.

--
Cordialement,

Jacques.



Avatar
Jacques93
Bonsoir Gandalf,
Gandalf a écrit :
OK, comment puis-je savoir si une dll est bien enregistrée sous Windows XP ?
Qu'est-ce que vous entendez par version de WSH ?




Vaste sujet (dll hell), mais pour WSH, via l'explorateur, sur
%Windir%System32scrrun.dll :

Click droit => propriétés => Version :

http://cjoint.com/?kAvfPpZrB0

Ne pas se fier aux dates sur cet onglet, mais plutôt à la date de modif.
dans l'onglet 'Général'. Des problème peuvent provenir de Dll
interdépendantes ayant des versions incompatibles

Pour savoir si une dll est enregistrée, il faut d'abord savoir si c'est
une dll ActiveX, donc avec les entrées (pour simplifier) :

DllRegisterServer (Appelé par regsvr32)

et

DllUnRegisterServer (Appelé par resvr32 /u)


c'est visible via un outil comme Dependency Walker, téléchargeable ici

http://www.dependencywalker.com/

par exemple :

http://cjoint.com/?kAvn1QsmUH


Il existe des outils plus intégrés, mais je n'ai plus les liens.

En tout cas, si tu n'as pas de procédure d'installation qui gère
automatiquemnt ces enregistrements, il faut passer (ce qui est fréquent
en phase de test) par regsvr32.

En fait pour ce soir, Joker !!!, il y a peut être des trucs que j'oublie

--
Cordialement,

Jacques.