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

cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010 - 12 avril 2007 à 09:08
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 23 août 2018 - 12 avril 2007 à 23:28
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

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 avril 2007 à 09:15
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
12 avril 2007 à 09:17
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 #
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
12 avril 2007 à 09:20
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 #
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 avril 2007 à 09:26
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
0

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

Posez votre question
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010
12 avril 2007 à 09:48
Non, si je ne lance pas l'application a partir de son repertoire il ne trouve pas la DLL
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
12 avril 2007 à 10:15
"... 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 #
0
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010
12 avril 2007 à 15:00
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
12 avril 2007 à 19:47
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 #
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 23 août 2018 21
12 avril 2007 à 23:28
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
0