2

我想将命令行选项添加到我的应用程序中,该选项会切换到子文件夹(例如)--software-rendering中的 MESA opengl32.dll 。mesa\opengl32.dll如何以编程方式切换到此 dll?

到目前为止,我知道当我将 opengl32.dll 移动到我的主文件夹时,渲染使用这个,但我希望根据命令行选项加载它

4

1 回答 1

3

唯一干净的解决方案是加载opengl32.dllusingLoadLibrary而不是将其硬链接到您的程序。然后在调用之前,LoadLibrary您可以定义搜索路径、查找 DLL 的位置,甚至传递绝对路径。缺点是,如果使用LoadLibrary每个 DLL 导出的符号,必须使用GetProcAddress. 好消息是,由glLoadGen生成的 GL 加载器正是这样做的。它用于GetModuleHandle引用opengl32.dll已加载到进程中并用于GetProcAddress常规 OpenGL 函数的任何内容。此外,它还将执行所有扩展加载。

于 2015-06-16T08:34:05.497 回答