cs_JeTrouvePasDePseudo
Messages postés11Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention23 janvier 2006
-
24 août 2005 à 15:58
cs_JeTrouvePasDePseudo
Messages postés11Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention23 janvier 2006
-
25 août 2005 à 09:45
Bonjour,
J'ai une DLL toto.dll qui existe dans plusieurs répértoires sur mon disque. Elles ont toutes étaient enregistré avec Regsvr32.
J'ai un exe Toto.exe qui utilise une dll Toto.dll. Cette dll n'est dans aucun folder System, ni dans le folder de l'exe.
Question : Quel est le chemin de la dll qui est utilisé dans mon soft ?
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 24 août 2005 à 17:32
Salut,
Voici la séquence de recherche effectué par Windows pour trouver une DLL :
1) Il examine le dossier contenant le fichier EXE.
2) Il examine le dossier courant du processus.
3) Il examine le dossier système de Microsoft Windows.
4) Il examine le dossier de Microsoft Windows.
5) Il examine les dossiers énumérés dans la variable denvironnement « Path ».
il faut faire gaffe à bien référencer ta dll sinon windows risque de prendre une mauvaise version de cette dernière. si elle sont correctement enregistrées tu devrais les voir dans les références de ton projet VB.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 août 2005 à 09:26
Ta dll est en fait un ActiveX.
On recherche le nom de la classe que tu vas utiliser:
Exemple avec "ADODB.Command"
On récupère d'abord le GUID (qui est une chaine représentant une structure sur 128 bits):
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ADODB.Command\CLSID
et à ce point on peut lire l'InprocServer32, suffit de chainer:
HKEY_CLASSES_ROOT\CLSID\{00000507-0000-0010-8000-00AA006D2EA4}\InprocServer32
cs_JeTrouvePasDePseudo
Messages postés11Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention23 janvier 2006 25 août 2005 à 09:02
Ce n'est pas la réponse que j'attendais... Je complète ma question...
En fait, cette DLL n'est pas dans un folder système, pas dans le répértoire courant, ni dans aucun chemin pointé par le PATH. Donc, l'EXE n'a aucun moyen de localiser la dll. Par contre, elle est enregistré dans la registry avec REGSVR32 (du coup, c'est peut être un ActiveX, mais je n'en sais rien.), et du coup, l'EXE la trouve, c'est magique :)
Ma question est : comment fait l'exe pour savoir quel DLL il doit utiliser.
Donc, en code, je cherche à écrire la fonction qui en entrer prend le nom de la DLL = "TOTO.DLL", va chercher dans la registry, et me retourne le chemin de la dernière version enregistré par RegSvr32.
Pour répondre en même temps à BruNews, comment trouver la signature InProcServer32 à partir du nom de la dll.
Merci :)
Vous n’avez pas trouvé la réponse que vous recherchez ?