OVH Cloud OVH Cloud

Emplacement d'une DLL et VBA

2 réponses
Avatar
Marc
Bonjour,

Je cherche a utiliser une DLL qui ne se trouve _pas_ dans un des repertoires
systemes depuis une Macro Excel.

Je ne veux pas non plus indiquer en dur le chemin complet de la DLL pour des
raisons assez facilement identifiables... :-)

Alors comment indiquer dans ma declaration de fonction l'emplacement de la
DLL comme etant le repertoire courant ou l'un de ses sous-repertoires
(Repertoire DLL par exemple).

Declare Function generateData Lib "MyAPI.dll" _
Alias "GenerateData" ( _
ByVal strTargetOutputFile As String, _
ByVal strInputFileName As String, _
ByVal strGeneratedStructName As String) _
As Long

J'obtiens une erreur a Runtime (#53) m'indiquant que la DLL est introuvable
..
Existe-t-il une astuce avec une espece de pointeur de fonction ?

D'avance merci.

Marc

2 réponses

Avatar
Gilles RONSIN
"Marc" <fun.x@#nospam#caramail.com>, le lun. 01 déc. 2003 09:28:31,
écrivait ceci:

Bonjour,


Salut,

Alors comment indiquer dans ma declaration de fonction
l'emplacement de la DLL comme etant le repertoire courant ou l'un
de ses sous-repertoires (Repertoire DLL par exemple).




Declare Function generateData Lib "x:cheminMyAPI.dll" _
Alias "GenerateData" ( _
ByVal strTargetOutputFile As String, _
ByVal strInputFileName As String, _
ByVal strGeneratedStructName As String) _
As Long


J'obtiens une erreur a Runtime (#53) m'indiquant que la DLL est
introuvable ..
Existe-t-il une astuce avec une espece de pointeur de fonction ?


Es-tu sûr que cette dll a été écrite pour fonctionner sous VB ? c'est
pas forcément le cas, je me souviens avoir eû cette erreur quand j'ai
voulu utiliser les dll de paradox, et comme elle n'a pas été compilée
avec les conventions d'appel utilisées par vb.....


--
Embryon de site : http://gilles.ronsin.free.fr Nouveau: un JukeBox pour
DaemonTool
Mon utilitaire de BDR V1.1.0 :
http://gilles.ronsin.free.fr/aregtool.htm
Les gens qui ne rient jamais, ne sont pas des gens sérieux.
Avatar
Francois
Bonjour,

Je crois qu'il existe un fonctionnement VBA qui recherche par priorité :
- Dans les répertoires systèmes puis, s'il ne trouve pas la dll en
question
- Dans le répertoire de l'application.

En terme clair, si vous mettez la dll au même endroit que l'application, ça
devrait marcher...
Voir sinon s'il y a possibilité de faire un référencement dynamique...

Enfin, sur Access, c'est ce que je fait.

@+

François E.


"Marc" <fun.x@#nospam#caramail.com> a écrit dans le message news:
3fcafc49$0$18460$
Bonjour,

Je cherche a utiliser une DLL qui ne se trouve _pas_ dans un des


repertoires
systemes depuis une Macro Excel.

Je ne veux pas non plus indiquer en dur le chemin complet de la DLL pour


des
raisons assez facilement identifiables... :-)

Alors comment indiquer dans ma declaration de fonction l'emplacement de la
DLL comme etant le repertoire courant ou l'un de ses sous-repertoires
(Repertoire DLL par exemple).

Declare Function generateData Lib "MyAPI.dll" _
Alias "GenerateData" ( _
ByVal strTargetOutputFile As String, _
ByVal strInputFileName As String, _
ByVal strGeneratedStructName As String) _
As Long

J'obtiens une erreur a Runtime (#53) m'indiquant que la DLL est


introuvable
..
Existe-t-il une astuce avec une espece de pointeur de fonction ?

D'avance merci.

Marc