Механизм загрузки библиотек DLL в Windows работает следующим образом:
- При запуске приложение пытается найти все файлы DLL, неявно подключённые к приложению, и поместить их в область оперативной памяти, занимаемую данным процессом. 1 Поиск файлов DLL операционной системой осуществляется в следующей последовательности: каталог, в котором находится ЕХЕ-файл, текущий каталог процесса, системный каталог Windows. 1
- Если библиотека DLL не обнаружена, приложение выводит диалоговое окно с сообщением о её отсутствии и путях, по которым осуществлялся поиск. 1 Затем процесс отключается. 1
- Если нужная библиотека найдена, она помещается в оперативную память процесса, где и остаётся до его окончания. 1 Теперь приложение может обращаться к функциям, содержащимся в DLL. 1
Также существует возможность динамической загрузки DLL во время работы приложения. 1 Для этого приложение вызывает функцию LoadLibrary или LoadLibraryEx для загрузки библиотеки DLL во время выполнения. 4 Если файл обнаружен и библиотека успешно загрузилась, функция LoadLibrary возвращает её дескриптор, который используется для доступа к функциям библиотеки. 1
После завершения работы с динамической библиотекой её следует освободить вызовом функции FreeLibrary. 5