To load the DLL, it must exist as a separate file since LoadLibrary only takes a filename as a parameter. It seems the solution to extract the DLL from a resource and save it to a temporary file in the application directory is the best solution. You could extract all the DLLs at application startup and delete them at application shutdown.