Книга Динамически загружаемые библиотеки: структура, архитектура и применение (часть 2)

С формальной точки зрения Dynamic Link Library (DLL) (динамически загружаемая библиотека) – особым образом оформленный относительно независимый блок исполняемого кода. DLL используются множеством приложений. Все приложения для ОС Windows так или иначе используют динамические библиотеки. Исполняемый код в DLL не предполагает автономного использования. Перед тем как приступить к использованию, необходимо загрузить DLL в область памяти вызывающего процесса (т.е. DLL не может выполняться сама по себе – ей обязательно нужен клиент). Это явление называется «проецирование DLL на адресное пространство процесса». Это и понятно, так как процессор работает не только с регистрами, но и с адресами памяти. Поэтому каждому объекту DLL требуется своё место «под солнцем», чтобы иметь возможность быть выполненным при вызове. В конечном коде exe-файла, который генерирует компилятор, не будет инструкций процессора, соответствующих коду данной функции. Вместо этого будет сгенерирована инструкция вызова соответствующей функции (call).