我想将命令行选项--software-rendering
添加到我的应用程序,该应用程序切换到子文件夹中找到的MESA opengl32.dll(例如mesa\opengl32.dll
)。如何以编程方式切换到此dll?
到目前为止,我知道当我将opengl32.dll移动到我的主文件夹时,渲染使用了这个,但我希望它根据命令行选项加载
答案 0 :(得分:3)
唯一干净的解决方案是使用opengl32.dll
加载LoadLibrary
,而不是将其严格链接到您的程序。然后在调用LoadLibrary
之前,您可以定义搜索路径,在哪里查找DLL,甚至传递绝对路径。缺点是,如果使用LoadLibrary
每个DLL导出的符号必须使用GetProcAddress
手动检索。好消息是, glLoadGen 生成的GL加载器就是这样做的;它使用GetModuleHandle
来引用已加载到进程中的opengl32.dll
,并在常规OpenGL函数上使用GetProcAddress
。此外,它还将执行所有扩展加载。