Appeler une DLL qui se trouve dans le repertoire de mon projet

Signaler
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

Je cherche a appeler une DLL qui se trouve dans le repertoire de mon projet (qui peut etre variable) et non dans windows
Hors lors de la declaration de l'appel à une DLL, on ne peut pas préciser app.path car VB6 repond qu'il attend une chaine ou une constante

Public Declare Sub MaFunction Lib "MaDLL.dll" ()
fonctionne

Public Declare Sub MaFunction Lib app.path+"MaDLL.dll" ()
ne fonctionne pas

Comment faire SVP ?

Merci

9 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
48
Salut,
Si tu ajoutes ta dll comme référence à ton projet, c'est pas bon?

Menu Projet => Références => Parcourir

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Si tu ne precise aucun chemin, normalement la dll est tout d'abords cherchée dans le répertoire de l'executable, ensuite dans le répertoire Windows puis dans System et enfin dans les répertoires désignés par la variable d'environnement PATH.

La recherche s'arrete au premier fichier portant le bon nom.

Donc si tu met ta dll avec l'exe, et que tu ne spécifie aucun chemin dans les déclarations, ça doit marcher.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Ajouter la dll en référence n'est valable que pour les dll COM (activeX). Ces dll ne s'utilisent pas avec l'instruction Declare.

Pour les dll API (avec instrcutions Declare donc), les rajouter en référence ne sert à rien. Au mieux cela n'apporte rien, au pire VB ne voudra pas les mettres en référence.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
48
Re,
Merci [auteurdetail.aspx?ID= 333139 casy], je ne savais pas.
Donc  [auteurdetail.aspx?ID=16071 globule] oublie ce que j'ai dit:!!

@+: =89254 Ju£i?n
Pensez: Réponse acceptée
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010

Non, si je ne lance pas l'application a partir de son repertoire il ne trouve pas la DLL
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
"... si je ne lance pas l'application a partir de son repertoire ..."

C'est à dire ??? Explique un peu, je suis pas sur de comprendre ce que tu veux dire.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010

Si je vais dans le repertoire ou se trouve mon projet à partir de l'exploreur et que je clique sur le projet pour ouvrir VB6, ca fonctionne.


Si je lance VB6 à partir du menu démarrer, puis que je charge mon projet ca ne fonctionne plus (normal car le dernier repertoire en mémoire est celui de VB6 et pas celui de mon app)


Donc il faut que je trouve un moyen de dire que ma DLL se trouve dans app.path
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Oui ok, effectivement c'est un bug de l'IDE de VB6. C'est pas bien méchant.

Il faut simplement penser à lancer le projet depuis le .vbp et non pas l'ouvrir depuis l'interface de VB6.

Même si ça ne marche pas depuis VB6 en debuggage, lorsque tu auras fait l'exe, lui fonctionnera correctement.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Une chose que tu pourrais essayer est de changer le chemin du raccourci de VB
Quand tu cliques droit sur le raccourci, tu vas dans Propriétés et tu changes le chemin dans "Démarrer dans".

Personnellement, tous mes projets VB sont dans un même répertoire principal et c'est ce chemin que j'y mets. Donc quand je clique "Ouvrir", VB va directement dans ce chemin, plutôt que XYZ:\Program Files\Microsoft Visual Studio\...

Peut-être que ça pourrait t'aider avec ton problème... (?)

MPi