今天学习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);
这样就可以成功编译了!