API : DllName, Variable?

Résolu
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012 - 1 janv. 2010 à 01:00
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 1 janv. 2010 à 19:50
Bonjour,

je veux utiliser une fonction apartir d'un DLL, mais le chemin n'est pas constant. le programme va chercher d'abord la dll, puis appelle la fonction desiré. mais DllName demande une constante. comment faire? merci.

3 réponses

MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
1 janv. 2010 à 19:20
je m'explique,
c'est ma propre dll que j'vais appeler.

<DllImport("MaLib.dll")> Private Function MaFonction(ByVal Parametre1 As Object) As Object
End Function

supposant que MaLib.dll est dans "c:\MonChemin\MaLib.dll" alors mon program ne va pas la trouver. il faut la declarer comme ça :

<DllImport("c:\MonChemin\MaLib.dll")> Private Function MaFonction(ByVal Parametre1 As Object) As Object
End Function

mais mon program va chercher d'abord la dll. alors le chemin doit etre une variable.

Merci Pour votre reponse, le probleme est resolu graçe à :

<DllImport("kernel32.dll")> Private Function SetDllDirectory(ByVal pathName As String) As Boolean
End Function

comme ça je cherche la dll, SetDllDirectory et mon programme fonctionne comme il faut.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 janv. 2010 à 12:16
Salut
"mais le chemin n'est pas constant" : le chemin de la DLL ?
Je ne comprends pas dans situation tu es. En programmation ? En Run de ton programme ?
Et pourquoi le chemin change t-il, tu as une DLL vivante ?
"mais DllName demande une constante" : Où vois-tu ce paramètre ? Dans quel objet/interface ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 janv. 2010 à 19:50
Inutile tout ceci, mettre la dll dans le dossier exe et sera trouvée à tout coup si on ne met aucun chemin.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous