Во время выполнения внешние ссылки на DLL также преобразуются в абсолютные адреса памяти, которые были сопоставлены с адресным пространством исполняемого файла.
Исполняемый файл содержит список необходимых DLL-файлов, которые загружаются или отображаются в память, и все ссылки на вызовы на машинном языке изменяются на правильный адрес для любых экспортируемых функций dllexport.
Общие библиотеки DLL загружаются только один раз в физическую память, но этот код логически отображается в адресное пространство любого исполняемого файла, который их использует.
Когда все загружено, оно выглядит как одна монолитная программа на машинном языке для CPU.
Кроме того, программист может использовать функцию API-интерфейса Windows LoadLibrary для загрузки DLL в адресное пространство программы во время выполнения, а функция API GetProcAddress возвращает физический адрес, который можно использовать для вызова функций DLL через переменную-указатель функции.