OVH Cloud OVH Cloud

Utilisation de DLL .NET dans un projet VB6

4 réponses
Avatar
MN
Bonjour à tous,

J'essaie d'utiliser une DLL .NET depuis un projet VB6 et j'utilise pour cela
l'interopérabilité qui existe entre COM et .NET :
La DLL est donc générée avec l'option "Inscrire pour COM Interop", j'obtient
le wrapper COM et j'enregistre la DLL ensuite avec le regasm

Dans mon projet VB6, quand j'essaie d'appeller avec le code suivant :

Dim frmSaisie As Object

Set frmSaisie = CreateObject("Application.frmSaisie")

j'ai le message d'erreur :
Erreur d'exécution '429' :

Le composant ActiveX ne peut créer l'objet.

Quelqu'un aurait-il un idée?
Merci d'avance;

4 réponses

Avatar
ng
> Bonjour à tous,



Salut,

J'essaie d'utiliser une DLL .NET depuis un projet VB6 et j'utilise pour
cela l'interopérabilité qui existe entre COM et .NET :
La DLL est donc générée avec l'option "Inscrire pour COM Interop",
j'obtient le wrapper COM et j'enregistre la DLL ensuite avec le regasm



Ca c'est pour enregistré l'assembly .net, la dll com (le xraper) doit etre
enregistré par regsvr32.

Dans mon projet VB6, quand j'essaie d'appeller avec le code suivant :

Dim frmSaisie As Object

Set frmSaisie = CreateObject("Application.frmSaisie")




Essaye d'ajouter la référence vers la dll com a ton projet juste afin de
voir le nom correct de la classe, on ne sait jamais.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
MN
> Essaye d'ajouter la référence vers la dll com a ton projet juste afin de
voir le nom correct de la classe, on ne sait jamais.



çà a marché en rajoutant la référence dans le projet :
Dim frmSaisie As Application.IfrmSaisie

Set frmSaisie = New Application.frmSaisie

mais je ne voudrais référencer aucune dll dans le projet ;

Merci;



"ng" a écrit dans le message de news:


Bonjour à tous,



Salut,

J'essaie d'utiliser une DLL .NET depuis un projet VB6 et j'utilise pour
cela l'interopérabilité qui existe entre COM et .NET :
La DLL est donc générée avec l'option "Inscrire pour COM Interop",
j'obtient le wrapper COM et j'enregistre la DLL ensuite avec le regasm



Ca c'est pour enregistré l'assembly .net, la dll com (le xraper) doit etre
enregistré par regsvr32.

Dans mon projet VB6, quand j'essaie d'appeller avec le code suivant :

Dim frmSaisie As Object

Set frmSaisie = CreateObject("Application.frmSaisie")




Essaye d'ajouter la référence vers la dll com a ton projet juste afin de
voir le nom correct de la classe, on ne sait jamais.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


Avatar
ng
Salut,

Essaye d'ajouter la référence vers la dll com a ton projet juste afin de
voir le nom correct de la classe, on ne sait jamais.



çà a marché en rajoutant la référence dans le projet :
Dim frmSaisie As Application.IfrmSaisie

Set frmSaisie = New Application.frmSaisie

mais je ne voudrais référencer aucune dll dans le projet ;



Dans ce cas dé-reference la et utilise CreateObject() comme tu faisais
avant.
Ca marchera car VB doit avoir enregistré la DLL si tu ne l'as pas fait vie
regsvr32.


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
MN
> Dans ce cas dé-reference la et utilise CreateObject() comme tu faisais
avant.
Ca marchera car VB doit avoir enregistré la DLL si tu ne l'as pas fait vie
regsvr32.


non çà ne marche tjrs pas!

la dll com (le xraper) doit etre enregistré par regsvr32.


comment faire pour l'enregistrer ? je dois faire un regsvr32 sur le .tlb?

merci;



"ng" a écrit dans le message de news:
eKevR%
Salut,

Essaye d'ajouter la référence vers la dll com a ton projet juste afin de
voir le nom correct de la classe, on ne sait jamais.



çà a marché en rajoutant la référence dans le projet :
Dim frmSaisie As Application.IfrmSaisie

Set frmSaisie = New Application.frmSaisie

mais je ne voudrais référencer aucune dll dans le projet ;



Dans ce cas dé-reference la et utilise CreateObject() comme tu faisais
avant.
Ca marchera car VB doit avoir enregistré la DLL si tu ne l'as pas fait vie
regsvr32.


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/