/DELAY (Paramètres d'importation à chargement différé)
/DELAY:UNLOAD
/DELAY:NOBIND
Notes
L'option /DELAY contrôle le chargement différé des DLL :
Le qualificateur UNLOAD indique à la fonction d'assistance de chargement différé de prendre en charge le déchargement explicite de la DLL. La table IAT (Import Address Table) est réinitialisée à sa forme d'origine, ce qui invalide les pointeurs IAT et entraîne leur remplacement.
Si vous ne sélectionnez pas UNLOAD, tout appel à FUnloadDelayLoadedDLL échouera.
Le qualificateur NOBIND indique à l'éditeur de liens de ne pas inclure dans l'image finale de table IAT pouvant être liée. L'option par défaut consiste à créer la table IAT pouvant être liée pour les DLL chargées en différé. L'image obtenue ne peut pas être liée statiquement. (Les images avec des tables IAT pouvant être liées sont susceptibles d'être liées statiquement avant leur exécution.) Voir /BIND.
Si la DLL est liée, la fonction d'assistance essaie d'utiliser les informations liées au lieu d'appeler GetProcAddress sur chacune des importations référencées. Si l'horodatage ou l'adresse préférée ne correspondent pas à ceux de la DLL chargée, la fonction d'assistance suppose que la table IAT liée est obsolète et continuera comme si la table IAT liée n'existe pas.
NOBIND augmente la taille de votre image de programme mais peut réduire le temps de chargement de la DLL. Si vous n'avez pas l'intention de lier la DLL, NOBIND empêchera la création de la table IAT liée.
Pour spécifier des DLL pour différer le chargement, utilisez l'option /DELAYLOAD.
Pour définir cette option de l'éditeur de liens dans l'environnement de développement Visual Studio
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, voir Utilisation des propriétés de projet.
Développez Propriétés de configuration et Éditeur de liens, puis sélectionnez Avancé.
Modifiez la propriété Chargement différé des DLL.
Pour définir cette option de l'éditeur de liens par programmation
- Consultez DelayLoadDLLs.