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

Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
- - Dernière réponse : 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
Afficher la suite 

9 réponses

Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
44
0
Merci
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
Commenter la réponse de jrivet
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
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 #
Commenter la réponse de cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
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 #
Commenter la réponse de cs_casy
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
44
0
Merci
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
Commenter la réponse de jrivet
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
Non, si je ne lance pas l'application a partir de son repertoire il ne trouve pas la DLL
Commenter la réponse de cs_globule
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
"... 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 #
Commenter la réponse de cs_casy
Messages postés
327
Date d'inscription
mardi 8 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2010
0
Merci
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
Commenter la réponse de cs_globule
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
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 #
Commenter la réponse de cs_casy
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
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
Commenter la réponse de cs_MPi