opengl 关于glewGetContext没有定义

继昨天的glGenBuffers加入相关文件之后,其实编译还是有问题的,因为glew里面很多函数都是使用了宏定义。


因为必须在预处理中加入:

GLEW_MX
WIN32_LEAN_AND_MEAN
VC_EXTRA_LEAN

,开启相关的宏定义,注意我这里编译的ew是动态链接库,如果你编译的是静态链接库,

必须加入对应的静态宏 GLEW_STATIC


加入相关的文件头,注意头文件顺序,否则会提示相关结构体等没有定义.

#include <GL/glew.h>
#if defined(_WIN32)
#include <GL/wglew.h>
#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
#include <GL/glxew.h>
#endif

#include <gl/glut.h>

然后还要加入glewGetContext的宏定义

#ifdef GLEW_MX
GLEWContext _glewctx;
#define glewGetContext() (&_glewctx)
#ifdef _WIN32
WGLEWContext _wglewctx;
#define wglewGetContext() (&_wglewctx)
#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
GLXEWContext _glxewctx;
#define glxewGetContext() (&_glxewctx)
#endif
#endif

到此编译虽然可以正常了,但是运行时有些人可能会发现会发生异常。原因红宝书中没有加入初始化ew的代码,

最后加入glewInit();

到此一切正常了。


版权所有,禁止转载。

发布自:http://blog.csdn.net/weinyzhou/article/details/7757360

原文地址:https://www.cnblogs.com/weinyzhou/p/2750078.html