Spécification de DLL dont le chargement doit être différé
Vous pouvez spécifier les DLL dont le chargement doit être différé avec l'option /delayload:dllname de l'éditeur de liens. Si vous n'envisagez pas d'utiliser votre propre version d'une fonction d'assistance, vous devez également lier votre programme avec delayimp.lib (applications de bureau) ou dloadhelper.lib (pour les applications du Windows store).
Voici un exemple simple de chargement différé d'une DLL :
// cl t.cpp user32.lib delayimp.lib /link /DELAYLOAD:user32.dll
#include <windows.h>
// uncomment these lines to remove .libs from command line
// #pragma comment(lib, "delayimp")
// #pragma comment(lib, "user32")
int main() {
// user32.dll will load at this point
MessageBox(NULL, "Hello", "Hello", MB_OK);
}
Générez la version DEBUG du projet. Parcourez le code pas à pas à l'aide du débogueur : vous noterez que user32.dll est chargée seulement quand vous effectuez l'appel à MessageBox.
Voir aussi
Concepts
Prise en charge de l'éditeur de liens pour les DLL à chargement différé