J'ai besoin d'utiliser libcurl.dll dans mon programme (le binaire s'appuyer sur libcurl.dll dans mon programme est "A.exe"), le libcurl.dll s'appuyer sur zlib1.dll, libeay32.dll , ssleay32.dll. mais il existe une autre version libeay32.dll qui existe déjà dans le dossier de A.exe. Donc, je prévois de créer un dossier "CURL" et mettre le nouveau 4 DLL que j'ai introduit cette fois, puis utiliser la charge DLL dynamique pour invoquer le libcurl.dll.Windows DLL dynamique charge
=====================
Main folder | A.exe, libeay32.dll(old one), Folder "CURL" ----- | | libcurl.dll, zlib1.dll, libeay32.dll, ssleay32.dll =====================
La question est que comment puis-je contrôler mon programme pour charger la DLL dans le dossier "curl" . Je peux contrôler "A.exe" charger CURL \ libcurl.dll par appel
HMODULE hModule = LoadLibrary (_T ("Curl \ libcurl.dll")); Mais comment puis-je contrôler le chemin de zlib1.dll, libeay32.dll, ssleay32.dll. Il semble que Windows recherche la DLL dans le dossier dont A.exe local est par défaut.
Je trouve une solution qui peut fonctionner sur une version haute OS. chargez la DLL en utilisant: LoadLibraryEx ("FullPathofA.exe", NULL, LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_DEFAULT_DIRS); Existe-t-il une méthode de travail sur les OS de version basse. Windows 7, Windows Server 2008 R2, Windows Vista et Windows Server 2008: cette valeur nécessite l'installation de KB2533623. Windows Server 2003 et Windows XP: cette valeur n'est pas prise en charge. – Leon
Je ne pense pas que ce schéma fonctionnera: 'libeay32.dll' est déjà chargé, donc il ne sera pas chargé à nouveau - même si les versions diffèrent! – MSalters
@MSalters Mais que se passe-t-il s'il charge la bonne version de libeay32.dll, comme je l'ai dit, avant de charger libcurl.dll? – SamuelVimes