我有点困惑 opengl32.lib 库是如何工作的——对于大于 1.1 的 opengl 版本没有任何扩展。 opengl32 lib 是否实现了 OpenGL 1.1 函数,或者只是从图形驱动程序中检索它们作为新的 OpenGL 函数?如果是,GPU 供应商不应该实现 OpenGL 吗? opengl32 库是否像实现 OpenGL 的图形驱动程序的一部分一样工作?如果我没有安装图形驱动程序,opengl32 会工作吗(当然只是基本的 v.1.1)?谢谢。
最佳答案
许多年前,OpenGL 1.1 的 opengl32.dll
提供了所有需要的 gl 函数。当新版本出现时,供应商也会对标准功能实现“扩展”功能。并且还有可能同时安装两个不同显卡的情况。如果所有这些都应该由操作系统来处理,那真是一场噩梦!
解决方案是每个供应商提供他的驱动程序,例如 Nvidia 的 nvoglv32.dll
。现在 opengl32.dll
在 Windows 的系统注册表中查找,如果它找到供应商驱动程序则加载它并让它处理 gl-stuff。如果没有供应商实现,则 opengl32.dll
处理 gl-stuff,但仅适用于 OGL 1.1 版。
opengl32.lib
(不是 .dll)是一个链接器符号 stub 。它说可执行文件需要 opengl32.dll
。
opengl32.a
与opengl32.lib
相同。 .lib
由MS VS提供,.a
由MingGW提供。
关于c++ - opengl32.lib 如何在 Windows 上工作(仅 1.1 版)?它实际上实现了 OpenGL 功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49371475/