Problème avec les Dll ActiveX et GlobalMultiUse

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.

Si je recompile mon exe il refonctionne à nouveau



Merci d'avance pour votre aide.

10 réponses

AdilELHASSOUNI Messages postés 145 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 19 juin 2007 1
3 mai 2005 à 12:12
je suppose que ton exe fait reference au projet de la dll et non au fichier compilé:
Verifie cela,
J'ai eu un probleme similaire

bonne chance
0
Utilisateur anonyme
3 mai 2005 à 12:51
Salut AdilELHASSOUNI,



comment je vérifie ce que tu m'as dis ?

Que faut-il que je fasse ?
0
AdilELHASSOUNI Messages postés 145 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 19 juin 2007 1
3 mai 2005 à 12:56
menu
Projet/References
0
Utilisateur anonyme
3 mai 2005 à 13:02
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AdilELHASSOUNI Messages postés 145 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 19 juin 2007 1
3 mai 2005 à 13:34
ouvre ton projet exe et verifie dans les references est ce que c'est au fichier maDLL.dll que tu utilise ou c'est au maDLL.vbp
0
Utilisateur anonyme
3 mai 2005 à 14:04
La référence est faite sur maDLL.dll

Tu ne peux pas faire de référence sur un projet VB dans les composants ou alors je ne sais pas faire.
0
AdilELHASSOUNI Messages postés 145 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 19 juin 2007 1
3 mai 2005 à 16:26
est ce que tu utilise un groupe de projet dans lequel tu integre la DLL et EXE ?
0
Utilisateur anonyme
3 mai 2005 à 16:36
Non, j'ai un projet pour ma Dll et un autre projet avec mon Exe qui fait référence à la Dll (dans les options de mon projet Exe)
0
AdilELHASSOUNI Messages postés 145 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 19 juin 2007 1
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
0
Utilisateur anonyme
3 mai 2005 à 20:29
Non je n'ai rien changé.

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.
0
Rejoignez-nous