В широком спектре работающих приложений можно использовать два вида библиотек - статические (.lib) и динамические (.dll).. Динамическая библиотека - это отдельная запись, которую можно обновлять, не изменяя сам файл EXE. Например, есть два отдельных файла: «example.exe», общий исполняемый, и «library.dll. Как эти файлы связаны операционной системой при запуске «example.exe»? Когда «example.exe» запускается, операционная система загружает его и находит в нем таблицу данных, “утверждая”, что «эта программа использует определенный список функций из файла DLL.
Затем код загрузчика выполняет поиск «library.dll», и, если он его находит, файл загружается. Внутри DLL-файла есть еще один набор, называемый «списком экспорта», который связывает конкретные адреса с каждой из функций внутри библиотеки динамических ссылок. С этого момента, когда файлу «example.exe» необходимо вызвать функцию из «library.dll», он просто использует этот адрес. Если зависимая DLL обновляется до более новой версии, перезаписывается более старой версией или удаляется с компьютера, программа, использующая файл DLL, может перестать работать должным образом