[VB6] Debug & Tracking "erreur automation"

Debug & Tracking "erreur automation" [VB6] - VB/VBA/VBS - Programmation

Marsh Posté le 05-06-2006 à 01:48:40    

Bonjour,
 
Un client utilise des logiciels développés en VB6 (je le vois grâce à depends.exe mais je n'ai aucune autre info sur la plateforme de développement, càd que je ne peux pas savoir s'ils sont en VB6 SP6 ou SP4 etc).
 
Mon client est sous Windows XP Home SP2, DX9.0c, .NET 1.1 SP1, etc. Bref, le système est à jour, MS update est content!
 
Les différents logiciels provoquent la même erreur "N°-2147221020 Erreur Automation, le module spécifié est introuvable".
 
Après recherche sur internet, de nombreux messages pointent vers les modules MDAC et ADO. Or, dans XP SP2, ces modules sont à jour (2.8 ou 2.81). Mais ce que je comprends des posts que je lis, c'est qu'il y aurait une déclaration précise à faire dans le code VB pour que le projet utilise correctement MDAC 2.8... Exemple:
http://www.developpez.net/forums/a [...] 33050.html
 
Pour comparaison, les mêmes logiciels sous Windows 2000 SP4 ne provoquent pas l'erreur? Que MDAC soit à jour en 2.8 ou pas.
 
Lorsqu'on pose la question aux éditeurs de ces logiciels, leur réponse géniale c'est: "Bah, faut réinstaller votre système, chez nous tout va bien". Merci dugenou, content de vous avoir eu au tél...  :kaola: Lorsqu'on pointe à l'éditeur que son programme marche sous 2000 SP4 alors que l'éditeur le garantit uniquement sous XP, je n'ai pas plus de réponse, voire moins!!!
 
Je suis Ingé Système et pas développeur, peut-être me trompe-je, mais j'ai la sensation que ces logiciels sont développés en VB6 (date un peu), sans que l'on puisse savoir si l'éditeur est, lui, à jour (au moins VB6 SP6!), ni non plus, si tout est correctement codé pour être utilisé sur XP SP2... C'est un peu comme si l'éditeur pensait que sous prétexte que sa station de dev est sous XP, alors son programme en VB6 sera forcément bon pour XP!!!
 
Je voudrais donc savoir s'il existe un quelconque programme (du même genre que les outils de Sysinternals), qui permettrait de tracer le code VB, pour montrer à quel endroit précis (module?) le programme plante. Sachant que regmon ou filemon (sysinternals) ne m'ont pas été utiles dans ce cas précis. Juste histoire d'envoyer un mail détaillé aux éditeurs récalcitrants pour leur dire: "il y a sûrement un problème là, car de mon côté, le système est correctement installé".
 
Merci pour vos tuyaux.
Mikee


Message édité par mikeleetoris le 05-06-2006 à 02:10:52
Reply

Marsh Posté le 05-06-2006 à 01:48:40   

Reply

Marsh Posté le 05-06-2006 à 07:28:53    

Je ne sais pas si cela fera avancer le smilblic
Sur http://support.microsoft.com/kb/186063/fr
Traduction des erreurs Automation pour VB/VBA
-2147221020 (800401E4)    Syntaxe incorrecte.

Reply

Marsh Posté le 05-06-2006 à 15:21:19    

kiki29 a écrit :

Je ne sais pas si cela fera avancer le smilblic


Si, si! C'est toujours des pistes supplémentaires pour moi, ça affine ce que je pourrais mettre dans mon mail à l'éditeur du soft.
 
Par contre, ce qui m'embête c'est que grâce à ton lien, je peux voir tous les numéros de message, sauf que je ne trouve pas celui qui s'affiche chez mon client??? J'ai fait une recherche dans tous le MS KB, pas mieux???
 
"Erreur d'exécution -2147024770 (8007007e)"
"Erreur d'automation, le module spécifié est introuvable."
 
Cela viendrait de quel module .h alors?


Message édité par mikeleetoris le 05-06-2006 à 15:22:06
Reply

Marsh Posté le 05-06-2006 à 16:58:21    

sur http://msdn2.microsoft.com/fr-fr/library/ms372661.aspx  
j'ai trouvé  
"Le module spécifié est introuvable (0x8007007e)
 L'objet OLE spécifié est inscrit comme serveur OLE in-process (fichier .DLL), mais le fichier .DLL ne peut pas être trouvé ou chargé."
Et cela me ramenerait à un probleme d'installation à refaire ?


Message édité par kiki29 le 05-06-2006 à 17:00:32
Reply

Marsh Posté le 05-06-2006 à 17:06:20    

ça sent la DLL a regsvr32-iser.

Reply

Marsh Posté le 05-06-2006 à 17:17:14    

dans les versions 2.x jusqu'à la 2.7 incluse
ms activex data objects 2.x library fait référence à msado2x.tlb et depuis la 2.8 à msado15.dll

Reply

Marsh Posté le 07-06-2006 à 01:29:48    

Salut, déjà merci pour vos réponses, c'est bien cool!

bjone a écrit :

ça sent la DLL a regsvr32-iser.


Peux-tu préciser la manip à effectuer? Je connais la commande regsvr32 et sa syntaxe, mais j'ai jamais capté comment on pouvait vérifier (base de registre? DllCache?) que le système l'avait bien pris en compte.
 
Et si le problème vient de là, comment puis-je déterminer la DLL qui pose problème? En effet, grâce aux liens de Kiki, c'est bien le module MDAC/ADO OLE qui semble poser problème, mais dans "fichiers communs\system\ADO", il y a juste TOUTES les versions (msado20.tlb, msado15.dll, etc)!!! Ainsi que dans DLLcache d'ailleurs.
 
Donc si je savais comment vérifier que le système connait bien ces DLL ADO, je pourrais éventuellement voir laquelle manque.
 
Sans oublier que cela me permettrait de vérifier que, du point de vue du système, toutes les DLL ADO sont dispo, et que la balle peut toujours être dans le camp de l'éditeur, car je viens de trouver dans leurs fichiers des références (forcées? ou mal gaulées?) à MDAC 2.5, alors que XP SP2 amène bien MDAC 2.8...


Message édité par mikeleetoris le 07-06-2006 à 01:34:40
Reply

Marsh Posté le 07-06-2006 à 10:37:00    

bah le regsvr32 enregistre dans la base du registre la DLL, avec regedit et le nom de la DLL, il doit y avoir moyen de retrouver l'entrée dans HKEY_CLASSES_ROOT\CLSID.
 
si tu as un mec qui as visual studio dans ta boite, tu as un outil fourni qui s'appelle Depends.exe (Dependency Walker) et tu peux tracer les DLLs chargés par l'exécutable, et les imports/exports ça peut peut-être aider :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed