【发布时间】:2016-06-11 12:54:17
【问题描述】:
我在使用 MSVS 2013 设置 OpenGL 时遇到问题。我知道我的 Windows 上的 opengl32.dll
位于C:\Windows\System32 的平台是OpenGL 1.1 的实现。
我要做的是加载较新的 OpenGL > 1.1 函数,例如 glBindBuffer 和 glBufferData。我已经读到可以使用wglGetProcAddress 获得指向函数的指针。使用此函数时,返回的指针始终为空,dll 中使用GetProcAddress(OpenGL32DLL, "...") 的所有原始函数都可以正常工作,但似乎没有加载较新的函数。
我希望这里的任何人都可以帮助我完成我的设置并指出我做错了什么或者我是否遗漏了什么。
所以我们开始:
-
我已经下载了 OpenGL Extensions Viewer 4.4,它指出我能够完美地运行到 OpenGL 2.1 应该足以使用或加载
glBindBuffer和glBufferData。 -
我下载了包含标题的 Microsoft SDKs/v7.1:
gl/glu.h和gl/gl.h;我还下载了 GLEXT 扩展 API 来自here 并链接了glext.lib+ 包括标题。 -
链接器中的文件:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\OpenGL32.Lib
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\GlU32.Lib
C:\Users\user\Desktop\gext\lib\gext.lib
- CPP 文件包括:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include -> GL.h, GLU.h
C:\Users\user\Desktop\gext\include -> glcorearb.h, glext.h, wgext.h
【问题讨论】:
-
您在调用
wglGetProcAddress之前是否创建了OpenGL上下文?