Выбор определенного файла opengl32.dll во время загрузки

В зависимости от графической карты компьютера я хочу, чтобы мое приложение выбрало существующий файл opengl32.dll (расположенный в C:\Windows\System32), или Mesa\ программное обеспечение opengl32.dll, Возможно ли это сделать во время загрузки или это вне моего контроля?

Если нет, то возможно ли вообще выполнить мой собственный код раньше? .dll файлы загружаются в приложение Windows (мои решения для резервного копирования, чтобы просто переименовать программное обеспечение .dll файл, содержащийся в той же директории, что и мой исполняемый файл)?

2 ответа

Решение

Да. Используйте задержку загрузки. Это очень простой флаг компилятора. За кулисами он сгенерирует для вас вызовы LoadLibrary и GetProcAddress.

Sinde фактическая загрузка opengl32.dll теперь будет отложено до первого вызова функции OpenGL, у вас есть время для вызова SetDllDirectory,

Проверять, выписываться LoadLibrary(Ex),

Другие вопросы по тегам