Windows DLL может быть динамически загружена с помощью API LoadLibrary (или LoadLibraryEx), но затем вам нужно найти и привязать каждую экспортированную функцию к указателю на функцию, используя GetProcAddress или GetProcAddressEx , Вам бы лучше получить правильные сигнатуры функций, или, как обычно, произойдут плохие вещи.
Файл LIB позволяет Windows делать все это за вас при запуске вашего EXE-файла (включая поиск используемой DLL-библиотеки и рекурсивную загрузку зависимых DLL-файлов), статически связывая динамическую библиотеку во время выполнения, избегая при этом раздувания вашего EXE-файла исполняемый код и позволяющий нескольким процессам совместно использовать один и тот же образ DLL в памяти.