Есть статья в DDJ от 2002 года, которая может иметь то, что вы хотите:
В основном он использует комбинацию связывания с библиотекой DLL с использованием функции MSVC «отложенная загрузка» и упаковывает библиотеку DLL как встроенный ресурс в EXE. Затем DLL автоматически извлекается во время выполнения при первом вызове одного из экспортов.
Я не использовал эту технику, поэтому я не могу прокомментировать, насколько хорошо она работает, но она, похоже, выглядит изящной идеей.