Dll & dllactiveX ?

Résolu
Signaler
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012
-
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012
-
Bonjour



J'ai quelque soucis sur les dll écrites et compilées avec VB qui sont en fait des activex non ?



Tout d'abord y a t'il un autre moyen de les utiliser que par un
createobject, comme l'utilisation d'une api avec un declare function...



Normalement l'instanciation, c'est bien de la méthodologie objet...on
doit donc pouvoir accéder au moins méthodes publics de l'objet ce n'est
que partiellement vrai sous VB...



Exple:

J'ai créé et compilé la dll : madll. Celle-ci contient une classe Exple et 3 méthodes mameth1, mameth2, & mameth3

La dll est dupliquée est positionée à la racine de mon projet App1.

Dans un des composant graphique, je code:

Dim MonObj as Object



set MonObj = CreateObject("madll.Exple")

lorsque je tape : MonObj. aucune proposition de methode n'apparait dans le menu conceptuel ... Est-ce que jai loupé une marche.



alors je le fait manuellement

MonObj.mameth1



Je compile, pas d'erreur, je lance l'interpréte et l'exe tout marche.

La seule différence quand j'ajoute
madll.dll aux références, c'est que je peux visualiser la bibliothèque
madll sa classe et ses membres. La forcément ça m'interpel...



De meme, je n'ai pas eu à faire regsvr32.exe madll.dll pour que cela fonctionne



Merci car j'avoue que ça me bloque un peu les neuronnes


madbob

5 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Salut, bien en VB6 je sais pas trop le maitriser, mais en VB.Net, une fois ta Dll insérée dans les références, tu peux faire soit un :

Imports Madll
Dim toto as ClassDeLaDll 


ou soit

Dim toto as Madll.ClassDeLaDll


En .net, il est normal de pouvoir voir les class de ta Dll, c'est l'explorateur d'objet

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Tout à fait, il faut faire une référence à ta dll par Projet/Référence,
et ensuite, tu pourras utiliser ses méthodes, ses membres, etc; comme
un objet standard de VB, et plus besoin de passer par du LateBound
(CreateObject et tout ce qui va avec) qui est beaucoup plus lent en
plus !

DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Merci pour vos réponses ça m'a fait tilter....



En effet quand je tape nom de la classe en direct, j'ai bien accés aux
membres... ce qui n'est pas le cas en passant par le createobject.



Reste le probleme d'avoir ou de ne pas avoir à enregistrer la
dll... Enfin j'imagine assez bien que dans le package de distribution
(par le biais des ajouts) le problème est classé à ce moment.


Bonne journée


madbob
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
En effet, c'est au setup d'enregistrer les dll activeX et non à ton programme, à moins de faire du latebound !

DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Bon bin comme on dit l'affaire est plié repassée même

+
madbob