OVH Cloud OVH Cloud

Appeler une dll créer en VB

2 réponses
Avatar
lucio
Bonjour,
J'ai cr=E9=E9 une dll sous VB et je veux l'appeler d'un autre=20
programme.
Pour cr=E9er cette dll j'ai utilis=E9 un module de classe et=20
des modules contenant mes diff=E9rentes fonctions (lots DTS=20
extrait de SQL)

Lorsque je l'appelle dans mon prog=20
le code que j'utilise est

Je declare cette fonction=20

Declare Function MaDll Lib "MaDll.dll" (ByVal Xdossier As=20
String, ByVal Xmens As Boolean)

Et pour l'appeler j'utilise=20
Call MaDll("Doss", true)

il me renvoit le msg suivant
Point d'entr=E9e MaDll d'une dll introuvable dans MaDll.dll

2 réponses

Avatar
Zoury
Salut!

l'instruction Declare permet de déclarer des méthodes contenus dans des dll
Win32 or VB créer des dll de type ActiveX (COM).

pour utiliser ta dll tu dois d'abord et avant tout l'enregistrer à l'aide de
regsvr32. (menu démarrer/Exécuter/tape: regsvr32 "c:blablablamadll.dll")
ensuite tu ajoutes une référence vers celle-ci depuis ton projet (menu
Projet/Références...)
maitenant tu peux instancier des objets comme ceci :
'***
Dim o As MaLibrairie.MaClasse
Set o = New MaLibrarie.MaClasse

Call o.MaFonction("Doss", True)
'***


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

"lucio" a écrit dans le message de
news:673301c47573$f6925310$
Bonjour,
J'ai créé une dll sous VB et je veux l'appeler d'un autre
programme.
Pour créer cette dll j'ai utilisé un module de classe et
des modules contenant mes différentes fonctions (lots DTS
extrait de SQL)

Lorsque je l'appelle dans mon prog
le code que j'utilise est

Je declare cette fonction

Declare Function MaDll Lib "MaDll.dll" (ByVal Xdossier As
String, ByVal Xmens As Boolean)

Et pour l'appeler j'utilise
Call MaDll("Doss", true)

il me renvoit le msg suivant
Point d'entrée MaDll d'une dll introuvable dans MaDll.dll
Avatar
ng
Salut,

Les DLLs compilées en VB sont des objets ActiveX (par défaut car on peut en
faire des classiques (APIs) avec vbAdvance par exemple). Il faut donc les
instancier comme n'importe quel objet COM, par exemple en VB (en late
binding, pour du early binding, on ajoutera une référence vers la DLL au
projet et ca se passe comme pr une classe...) :

Dim oMonObjet As Object
Set oMonObjet = CreateObject("MaDll.MaClasse")
Call oMonObjet.Methode()
Set oMonObjet = Nothing

On notera que ce genre de DLL nécessite d'étre enregistrées dans la BDR via
regsvr32 par exemple.

--
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/
http://apisvb.europe.webmatrixhosting.net/



lucio a écrit :

Bonjour,
J'ai créé une dll sous VB et je veux l'appeler d'un autre
programme.
Pour créer cette dll j'ai utilisé un module de classe et
des modules contenant mes différentes fonctions (lots DTS
extrait de SQL)

Lorsque je l'appelle dans mon prog
le code que j'utilise est

Je declare cette fonction

Declare Function MaDll Lib "MaDll.dll" (ByVal Xdossier As
String, ByVal Xmens As Boolean)

Et pour l'appeler j'utilise
Call MaDll("Doss", true)

il me renvoit le msg suivant
Point d'entrée MaDll d'une dll introuvable dans MaDll.dll