2010-04-30 2 views
2

J'ai une DLL que j'ai créée à partir d'un projet VB6 que j'utilise maintenant dans un projet C#. Cela a fonctionné avant, mais maintenant, quand je tente de revenir au C# projet pour corriger un bug, le programme obtenir un COMException indiquant à peu près traduit:Comment faire pour résoudre vb6 dll erreur 800a01ad dans l'application C#

Could not create an instance of COM-component with CLSID {085E3494-9F78-47D5-B0E6-FA460FD3CBED} from IClassFactory because of the following error: 800a01ad.

J'essaie donc de créer un nouveau vide C# projet avec une seule ligne dans la fonction principale:

OurNamespace.OurClass foo = new OurNamespace.OurClass(); 

Qui échoue avec la même erreur.

J'ai enregistré la DLL mais cela n'a pas changé le résultat du problème.

Le problème se produit uniquement sur la machine que je suis actuellement, je suis toujours intéressé à comprendre le problème afin que je sache comment le réparer si elle se produit sur un ordinateur client.

Répondre

5

Cela se traduit par erreur d'exécution VB6 429, « ActiveX ne peut pas créer un objet ». Ce n'est pas votre code C# qui échoue, c'est le code VB6 qui a un problème. Vous ne pouvez obtenir quelque part qu'en déboguant le code VB6. Vous aurez besoin de l'EDI VB6, charger le projet de bibliothèque, définir votre programme C# comme programme de démarrage et définir un point d'arrêt sur la sous-routine Class_Initialize de la classe que vous essayez de créer dans votre code C#. En supposant que vous n'avez plus les outils, l'erreur 429 a beaucoup de causes potentielles. Le plus commun est un problème d'enregistrement, résolu en exécutant Regsvr32.exe sur une DLL que le code VB6 utilise.

+0

Le problème était une autre DLL manquante référencée par la DLL VB6. Bien que je ne pouvais pas détecter le débogage de la VB6, ça m'a permis de regarder au bon endroit. – hultqvist

1

Compilez votre DLL VB6 avec l'ensemble de compatibilité binaire. Sinon, le GUID de votre DLL VB6 ne cesse de changer à chaque fois que vous compilez.

Questions connexes