C++ wglGetProcAddress返回NULL
我正在使用C++ wglGetProcAddress返回NULL,c++,c,opengl,wgl,C++,C,Opengl,Wgl,我正在使用WLGGETROCADDress获取使用wglCreateContext创建的上下文的函数。我已经用wglMakeCurrent设置了上下文。我为glGetStringi获取有效的函数指针,但为glGetString获取NULL。我认为glGetString和glGetStringi是在同一版本的OpenGL(1.0)中引入的。你知道我为什么会得到这个NULL const GLubyte* (*glGetString)(GLenum); const GLubyte* (*glGetSt
WLGGETROCADDress
获取使用wglCreateContext
创建的上下文的函数。我已经用wglMakeCurrent
设置了上下文。我为glGetStringi
获取有效的函数指针,但为glGetString
获取NULL
。我认为glGetString
和glGetStringi
是在同一版本的OpenGL(1.0)中引入的。你知道我为什么会得到这个NULL
const GLubyte* (*glGetString)(GLenum);
const GLubyte* (*glGetStringi)(GLenum, GLuint);
glGetString = reinterpret_cast<decltype(glGetString)>(wglGetProcAddress("glGetString"));
glGetStringi = reinterpret_cast<decltype(glGetStringi)>(wglGetProcAddress("glGetStringi"));
const GLubyte*(*glGetString)(格伦);
常量GLubyte*(*glGetStringi)(GLenum,GLuint);
glGetString=reinterpret_cast(wglGetProcAddress(“glGetString”);
glGetStringi=重新解释cast(wglGetProcAddress(“glGetStringi”);
如果有必要的话,我有一款Radeon HD 7950,驱动程序版本为13.251.0.0。
glGetStringi
的推出时间比1.0晚得多-我相信它是3.3。更糟糕的是,在core 3.3+配置文件上,您不能使用glGetString(GL_扩展)
,但必须使用glGetStringi
,这对于较低配置的版本是不可用的
MSDN文档中说,wglGetProcAddress
只返回扩展函数的地址。“扩展”是指GL 1.1中未包含的所有内容
请阅读您正在创建的上下文的配置文件是什么?