Нет, они просто позволяют вам использовать статическое связывание с DLL. Исполняемый файл содержит список функций, которые ему нужны из других DLL-файлов, поэтому при загрузке исполняемого файла загрузчик анализирует этот список и разрешает каждую функцию с помощью LoadLibrary
и GetProcAddress
, сохраняя результат в статической таблице (IAT, Импортированная таблица адресов). Это делается только один раз. Существует также понятие «отложенная загрузка» DLL, которая разрешает адрес только при первом вызове функции, но редко используется.
Таким образом, файл lib для DLL содержит только информацию, необходимую для построения этого списка (имена экспортируемых функций).