wglGetProcAddress 返回 NULL

Posted

技术标签:

【中文标题】wglGetProcAddress 返回 NULL【英文标题】:wglGetProcAddress returning NULL 【发布时间】:2014-04-02 03:47:42 【问题描述】:

我使用wlgGetProcAddress 来获取使用wglCreateContext 创建的上下文的函数。我已经用wglMakeCurrent 设置了上下文。我得到了glGetStringi 的有效函数指针,但我得到了glGetStringNULL。我以为glGetStringglGetStringi是在同一个版本的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"));

以防万一,我有一个驱动程序版本为 13.251.0.0 的 Radeon HD 7950。

【问题讨论】:

您正在创建的上下文的配置文件是什么? 【参考方案1】:

glGetStringi 的引入远远晚于 1.0 - 我相信它是 3.3。更糟糕的是,在核心 3.3+ 配置文件上,您不能使用 glGetString(GL_EXTENSIONS),但必须使用 glGetStringi,这对于较低配置文件的版本不可用。

MSDN 文档说wglGetProcAddress 只返回扩展功能的地址。用他们的话来说,“扩展”是 GL 1.1 中没有的一切。

请阅读https://www.opengl.org/discussion_boards/showthread.php/168281-Can-t-get-wglGetProcAddress-to-work-in-opengl-3-1

【讨论】:

以上是关于wglGetProcAddress 返回 NULL的主要内容,如果未能解决你的问题,请参考以下文章

为啥 WCF/JSON 不为 null 返回值返回“null”?

places.getLatLng() 返回 null 虽然 places.getName() 没有返回 null

返回一个空任务还是返回null更好? C#

monitor.getDropResult() 返回 null

java mybatis 查询列表会返回为null吗

什么时候可以返回 NULL 作为 C 函数的返回值?