Когда ОС загружает DLL (и, конечно, тоже EXE), она ищет свою таблицу импорта и пытается загрузить импортированные библиотеки.
Если они не найдены, вы видите ошибку, которую вы описали.
Вы можете использовать динамическую загрузку зависимой библиотеки, используя LoadLibrary и GetProcAddress, чтобы предотвратить это, но тогда вам придется обрабатывать ошибки с отсутствующими зависимостями.