wglGetProcAddress возвращает NULL

Я пытался использовать WGL_ARB_pbuffer для закадрового рендеринга с OpenGL,

но я потерпел неудачу во время инициализации.

Вот мой код

wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC) wglGetProcAddress("wglGetExtensionsStringARB");
if(!wglGetExtensionsStringARB) return;
const GLubyte* extensions = (const GLubyte*) wglGetExtensionsStringARB(wglGetCurrentDC());

Так что на самом деле это заканчивается на 2-й строке, потому что wglGetExtensionsStringARB получил NULL.

Я понятия не имею, почему wglGetProcAddress не работает.

Я включил «wglext.h», а также я определил, как показано ниже в заголовке.

PFNWGLGETEXTENSIONSSTRINGARBPROC    pwglGetExtensionsStringARB = 0;
#define wglGetExtensionsStringARB   pwglGetExtensionsStringARB

Почему я не могу использовать wglGetProcAddress, как я и предполагал ??

4

Решение

wglGetProcAddress требуется контекст рендеринга OpenGL; вам нужно позвонить wglCreateContext а также wglMakeCurrent до звонка wglGetProcAddress, Если вы еще не настроили контекст OpenGL, wglGetProcAddress всегда вернется NULL, Если вы не уверены, что у вас есть контекст OpenGL (например, если вы используете стороннюю платформу / библиотеку), позвоните wglGetCurrentContext и убедитесь, что он не возвращается NULL,

12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]