今天学习opengl红宝书第11章时, 用到gluTessCallback(tobj,GLU_TESS_BEGIN,glBegin),居然编译不过,
上网查了一下,不少人也遇过这个问题,这种格式在c中是可以通过的,但是在vs.net中比较严格,所以不能通过 ,解决办法也就是强制转换:
gluTessCallback(tobj, GLU_TESS_VERTEX,
(void(__stdcall*)())vertexCallback);
gluTessCallback(tobj, GLU_TESS_BEGIN,
(void(__stdcall*)())beginCallback);
gluTessCallback(tobj, GLU_TESS_END,
(void(__stdcall*)())endCallback);
gluTessCallback(tobj, GLU_TESS_ERROR,
(void(__stdcall*)())errorCallback);
gluTessCallback(tobj, GLU_TESS_COMBINE,
(void(__stdcall*)())combineCallback);
(void(__stdcall*)())vertexCallback);
gluTessCallback(tobj, GLU_TESS_BEGIN,
(void(__stdcall*)())beginCallback);
gluTessCallback(tobj, GLU_TESS_END,
(void(__stdcall*)())endCallback);
gluTessCallback(tobj, GLU_TESS_ERROR,
(void(__stdcall*)())errorCallback);
gluTessCallback(tobj, GLU_TESS_COMBINE,
(void(__stdcall*)())combineCallback);
这样就可以成功编译了!