Lorsqu'une application est liée statiquement à une DLL, l'application s'attend à trouver la DLL dans son propre répertoire. Cependant, si la DLL est placée dans un emplacement différent, l'application ne parviendra pas à la charger.
Méthode 1 : chargement des dépendances
Au lieu de lier statiquement la DLL, utilisez le chargement dynamique à l'aide de LoadLibrary() et GetProcAddress(). Cela permet à l'application de charger la DLL à partir d'un chemin spécifié.
Méthode 2 : Modification de la variable d'environnement PATH
Ajoutez le chemin d'accès à l'emplacement de la DLL à la variable d'environnement PATH . Cela rend la DLL accessible à toutes les applications qui effectuent une recherche à l'aide de la variable PATH.
Méthode 3 : mécanisme de chargement différé
Implémentez une fonction d'assistance personnalisée qui charge la DLL en fonction de le chemin fourni. Cela retarde le chargement de la DLL jusqu'à ce que l'application en ait besoin.
Méthode 4 : Manifeste d'assemblage
Créez un fichier manifeste dans le dossier de la DLL, en spécifiant le dossier en tant qu'assembly et listant la DLL. Ajoutez cet assembly au manifeste de dépendance de l'application à l'aide de la directive de commentaire #pragma.
Méthode 5 : Stub Executable et SetDllDirectory
Créez un exécutable stub qui définit le chemin de recherche de la DLL à l'emplacement de la DLL à l'aide de SetDllDirectory() avant de charger l'application réelle en tant que DLL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!