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