2015-06-16 2 views
2

Я хочу добавить параметр командной строки --software-rendering в мое приложение, которое переключается на MESA opengl32.dll, найденное в подпапке (например, mesa\opengl32.dll). Как я могу переключиться на эту DLL программно?Переключатель dll программно для MESA Software renderer

До сих пор я знаю, что когда я двигаю opengl32.dll к моей основной папке, рендеринг использует этот, но я хочу, чтобы быть загружен в зависимости от параметра командной строки

ответ

3

Единственного чистое решением является загружая opengl32.dll, используя LoadLibrary вместо того, чтобы связывать его с вашей программой. Затем перед вызовом LoadLibrary вы можете определить путь поиска, где искать DLL, или даже передать абсолютный путь. Недостатком является то, что при использовании LoadLibrary каждый экспортированный символ DLL должен быть извлечен вручную с помощью GetProcAddress. Хорошей новостью является то, что загрузчик GL, созданный glLoadGen делает именно это; он использует GetModuleHandle для ссылки на то, что opengl32.dll было загружено в процесс и использует GetProcAddress для обычных функций OpenGL. Кроме того, он также будет выполнять всю нагрузку на расширение.