Prise en charge de l'éditeur de liens pour les DLL à chargement différé
Mise à jour : novembre 2007
L'éditeur de liens Visual C++ prend désormais en charge le chargement différé des DLL. Cela vous évite d'utiliser les fonctions LoadLibrary et GetProcAddress de Kit de développement logiciel (SDK) Windows pour implémenter le chargement différé des DLL.
Avant Visual C++ 6.0, la seule façon de charger une DLL au moment de l'exécution consistait à utiliser LoadLibrary et **GetProcAddress **; le système d'exploitation chargeait la DLL lors du chargement de l'exécutable ou de la DLL qui l'utilisait.
À partir de Visual C++ 6.0, lors de l'édition statique de liens avec une DLL, l'éditeur de liens fournit les options permettant de différer le chargement de la DLL jusqu'au moment où le programme appelle une fonction de cette DLL.
Une application peut différer le chargement d'une DLL à l'aide de l'option /DELAYLOAD (Différer le chargement de l'importation) de l'éditeur de liens avec une fonction d'assistance (implémentation par défaut assurée par Visual C++). La fonction d'assistance charge la DLL au moment de l'exécution en appelant LoadLibrary et GetProcAddress à votre place.
Vous devez envisager le chargement différé d'une DLL dans les cas suivants :
Votre programme n'appelle pas une fonction dans la DLL.
Une fonction de la DLL n'est appelée que tardivement au cours de l'exécution de votre programme.
Le chargement différé d'une DLL peut être spécifié pendant la génération d'un projet .EXE ou .DLL. Un projet .DLL qui diffère le chargement d'une ou de plusieurs DLL ne doit pas lui-même appeler un point d'entrée au chargement différé dans Dllmain.
Les rubriques suivantes décrivent le chargement différé des DLL :