Une machine ayant msvbvm60.dll ver 6.0.97.82, dites vieux. Autre machine ayant msvbvm60.dll ver 6.0.98.15, par exemple. EXE créé à partir de nouvelles machines qui se bloque à la ligne Erreur de temps d'exécution '430': La classe ne prend pas en charge l'automatisation ou ne le fait pas
Prise en charge de l'interface attendue p>
blockQuote>
Comment se débarrasser de cela? Mon objectif principal est d'exécuter l'exe sur la vieille machine créée sur une nouvelle machine. Pour éviter de déranger la configuration de nouvelle machine, j'ai essayé de désenregistrer la version plus ancienne et d'enregistrer une version plus récente sur l'ancienne machine, mais pas de succès. Y a-t-il une autre dll (s) dll (s) utilisée par nouvelle adodb.Connection code> sur une machine ancienne donnant l'erreur suivante p>
adodb.connection code> ou je dois faire quelque chose de totalement différent pour se débarrasser de cela? p>
4 Réponses :
Il peut être plus facile de corriger tout le temps d'exécution VB6 sur l'ancienne machine - vous pouvez obtenir un téléchargement de ici . p>
Le temps d'exécution VB6 distribue en tant que paquet pour que je ne recommanderais donc pas d'insérer certaines dlls par elles-mêmes. P>
Je recommanderais également de vérifier que les deux machines que vous utilisez utilisent la même version de MDAC, en particulier que l'ancienne machine a la version installée qui est référencée dans votre projet. P>
Je ne veux pas corriger la vieille machine car ce sont des machines clientes. Oui, les versions de MDAC sont différentes, mais je suis en cours d'exécution VS6.0 et VS2010 sur une nouvelle machine en même temps. Les deux versions de MDAC peuvent-elles être installées sur la même machine?
Oui, ça va d'avoir beaucoup de versions. Dans VB6, vous pourriez avoir des versions MDAC 2.1 à 2.6 pouvant être installées (toutes en même temps). La version utilisée par votre projet doit exister sur le client.
Notez également que Vista + a des versions spécifiques des roulements VB que vous ne pouvez pas remplacer et ne doivent pas installer sur une version précédente de Windows. Tout ce qui est avant Vista devrait utiliser les roulements SP6.
1- Utilitaire Compchecker ne fonctionne pas sur de nouvelles fenêtres 7. J'ai donc vérifié la version de HKLM \ Software \ Microsoft \ DataAccess FullInstallver Touche, qui est 6.1 sur NOUVEAU et 2.82 sur OLD 2- Le projet VB sur les nouvelles références ActiveX Data Objects 2.8 Bibliothèque, Il semble que MDAC 2.8 est installé aussi !!!
Ce n'est rien à voir avec les versions d'exécution VB et plus à voir avec les bibliothèques ADO (comme la ligne d'erreur allusion à) et a été causée par la compatibilité Microsoft Brisant dans leurs bibliothèques ADO. P>
KB Article 2517589 explique pourquoi et la solution essentiellement à recompiler contre la compatibilité de la typelib. p>
J'ai suivi toutes les étapes de l'article de KB donné, tout allait parfaitement bien, je construis l'EXE et elle s'est encore écrasée. Plz se référer à mes commentaires sous la réponse de Jon Egerton
Suivant toutes les étapes de ma machine de construction et de la recompilation à la corrigée pour moi il y a quelques jours.
Si votre projet fait toujours référence à «Microsoft ActiveX Data Objects Objects XXX Bibliothèque», il s'agit toujours de la version incompatible. Vous devez supprimer cette référence et reconstruire contre la bibliothèque "Microsoft ActiveX Data Oubes 6.0 Backcompat Bibliothèque".
Je souhaite seulement que je puisse voter cela dans quelques fois de plus. Suivre les développements afin que vous comprenez que les symptômes des problèmes connus soient importants et pourquoi les programmeurs de VB6 devraient travailler sur des programmes VB6, et non quelques gars .net essayant de le simuler. Bon travail!
URRRR !!! L'un de mes projets consiste à compiler de l'amende sur les objets de données 2.6, mais dès que je modifierai la référence aux objets de données 6.0 Backcompat, il ne compile pas, Valeur B> Propriété dans le code suivant est manquant pour chaque myfield Dans myRecordset.fields Sélectionnez case myfield.type Case adboolcan mystring = iif (myfield.value, "1", "0") code>
Manquer comment? La définition de type typelib and Class de Field ContionS A (Par défaut) Propriété de valeur. Qu'est-ce que Myfield a déclaré?
Il a été déclaré comme DIM MyField en tant que champ CODE>, j'ai changé sa déclaration comme
DIM Myfield comme adodb.field code> et cela a fonctionné, merci
La réponse acceptée n'a pas fonctionné pour moi. Les étapes suivantes ont fait. P>
"classe ne prend pas en charge l'automatisation". Cette erreur est générée lors de la compilée dans VB 6.0 à l'aide de la version 64 bits de Windows et tente de l'exécuter sur une version 32 bits de Windows. Une recompilation avec 32 bits fixe l'erreur p>
Quels systèmes d'exploitation vos nouveaux et anciens ordinateurs fonctionnent-ils?