Page 1 sur 1

Chemin de la DLL [Résolu]

Publié : jeu. 07/juin/2007 10:24
par Kwai chang caine
Bonjour à tous.

Y a t'il une instruction qui permette de renvoyer le chemin d'une DLL.

Car quand on utilise ce code à l'intérieur de la DLL :

Code : Tout sélectionner

; 
Global AppPath.s
AppPath = Space(100); <-- Recherche du chemin de l'application 
GetCurrentDirectory_(100,@AppPath) 
On obtiens le chemin de l'appli qui appelle la DLL et non pas le chemin de la DLL. :?

Merci et bonne journée

Publié : jeu. 07/juin/2007 11:31
par KarLKoX
GetModuleFileName, il te restera ensuite à enlever le nom de la dll.

Publié : jeu. 07/juin/2007 11:47
par Kwai chang caine
Bonjour karlKox

J'ai trouvé ça :

Code : Tout sélectionner

curdir.s = Space(100) 
GetModuleFileName_(GetModuleHandle_(0), @curdir, 100) 
Mais j'ai rien qui remonte :(

Publié : jeu. 07/juin/2007 13:05
par KarLKoX
Il faut le faire dans AttachProcess() :

Code : Tout sélectionner

ProcedureDLL AttachProcess(Instance)
  Protected full_path.s
  
  full_path = Space(#MAX_PATH)
  GetModuleFileName_(Instance, @full_path, #MAX_PATH) 
  MessageRequester("AttachProcess !", GetPathPart(full_path), #MB_ICONINFORMATION)
    
EndProcedure

Publié : jeu. 07/juin/2007 15:59
par Kwai chang caine
Merci beaucoup KarlKox
C'est exactement ce que je cherchais. 8)

Passe une excelente journée

Publié : ven. 08/juin/2007 7:43
par Dr. Dri
et à la place de GetModuleHandle_ ça fonctionne pas LibraryID ?

Dri

Publié : lun. 11/juin/2007 11:34
par Kwai chang caine
Bonjour docteur

Apparement j'ai essayé et ça donne le chemin de l'appli.
A moins que j'ai encore merdé :oops:

Publié : lun. 11/juin/2007 11:38
par Progi1984
Ta DLL n'est elle pas à coté de l'application ?

Publié : lun. 11/juin/2007 12:24
par Kwai chang caine
Dans l'essai que j'ai effectué non.
J'ai donné un chemin en dur sur le C

Et il me retourne le chemin de l'appli.

Par contre avec le code de KarlKox pas de bleme il me donne bien "C:\"