c++ - wglGetProcAddress 返回 NULL

标签 c++ c opengl wgl

我正在使用 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。

最佳答案

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

关于c++ - wglGetProcAddress 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801188/

相关文章:

c++ - Hook 和控制后台进程的输入事件

c++ - 将输出为速度测试测验的 C/C++ 程序

Codeblocks 不打印特定格式

C编程strcat.asm not found错误调试

c++ - Qt 5.5.0 找不到 OpenGL 函数

opengl - 编译顶点着色器程序失败

java - D 是 Java 和 C++ 的可靠替代品吗?

c++文本解码器解码超过要求

android - Android应用程序是否可以与C语言中的非Android应用程序共享UID

c++ - 从 texture() 切换到 texelFetch()