Статические библиотеки увеличивают размер кода в вашем двоичном файле. Они всегда загружаются, и любая версия кода, с которой вы скомпилировали, является версией кода, который будет выполняться.
Динамические библиотеки хранятся и версии отдельно. Возможно загрузить версию динамической библиотеки, отличную от оригинальной, которая поставляется с вашим кодом , если обновление считается двоичным, совместимым с исходной версией.
Кроме того, динамические библиотеки не обязательно загружаются - они обычно загружаются при первом вызове - и могут использоваться совместно компонентами, использующими одну и ту же библиотеку (несколько загрузок данных, одна загрузка кода).
Динамические библиотеки считались лучшим подходом в большинстве случаев, но изначально у них был серьезный недостаток (ад Google gll DLL), который практически исключен более поздними версиями ОС Windows (в частности, Windows XP).