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

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

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


person Viktor Sehr    schedule 18.11.2010    source источник


Ответы (2)


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

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

person MSalters    schedule 19.11.2010

Проверьте LoadLibrary(Ex).

person Andreas Brinck    schedule 18.11.2010
comment
Работал в моем реальном проекте, но не в моем прототипе. Достаточно хорошо. - person Viktor Sehr; 18.11.2010