Utilisateur anonyme
-
3 mai 2005 à 11:32
Utilisateur anonyme -
3 mai 2005 à 20:29
Bonjour à tous,
J'ai fait une Dll ActiveX sous VB6 qui contient plusieurs modules de classe.
Je compile ma Dll sans problème.
Ensuite, je créer un deuxième projet (Exe) dans lequel je référence ma
Dll dans l'interface de VB afin de pouvoir l'utiliser. Et ca
fonctionne. Je peux accéder à mes fonctions directement sans avoir
besoin de les déclarer. Je créer donc un exécutable. Je le lance et ça
fonctionne.
Mon problème et le suivant. Si je recompile ma Dll, l'éxecutable
précédemment compilé ne fonctionne plus. J'obtient le message d'erreur
suivant :
Erreur d'exécution 430
La classe ne gère pas Automation ou l'interface attendue
En revanche, l'application fonctionne dans l'environnement VB.
Je ne suis pas sûr de bien comprendre ce que tu me dis.
Mon exécutable référence forcément ma Dll. Donc oui, la Dll que j'ai
crée est bien coché dans la liste des références disponible. Si ce
n'était pas le cas je ne pourrait pas l'utiliser dans mon projet.
Comment as-tu résolu le problème à l'époque ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
AdilELHASSOUNI
Messages postés145Date d'inscriptionvendredi 11 janvier 2002StatutMembreDernière intervention19 juin 20071 3 mai 2005 à 19:44
as-tu changer qcq choses dans la DLL avant de la recompiler?
par ce que ainsi le fichier .exe fait ref a des proprietes ou methodes de la dll qui ont change
je crois
Il suffit simplement de recompiler la Dll (sans rien changer au code)
pour que mon exécutable précédemment compilé ne fonctionne plus.
C'est à n'y rien comprendre.
En revanche, il semblerait que mon exécutable fonctionne après
recompilation de la Dll si j'instancie la Dll depuis mon Exe avec la
méthode CreateObject. C'est déjà ça mais ce n'est pas ce que je veux
car dans ce cas je perds tout le bénéfice du paramètre GlobalMultiUse.