gluTessCallback出错【转】
来源:互联网 发布:档案管理系统软件免费 编辑:程序博客网 时间:2024/06/07 10:40
原来例子中的代码是这样的:
void CALLBACK vertexCallback(GLvoid *vertex)
{
const GLdouble *pointer;
glColor3dv(pointer+3);
glVertex3dv(vertex);/*这行出错*/
}
但在c++ 中运行会出错,错误代码为error C2664: 'glVertex3dv' : cannot convert parameter 1 from 'void *' to 'const double *'也就是说由glVertex3dv来看括号内的变量应为double类型,而vertex却是'void *类型,修改如下就可运行通过了:]
void CALLBACK vertexCallback(GLvoid *vertex)
{
const GLdouble *pointer;
pointer = (GLdouble *) vertex;
glColor3dv(pointer+3);
glVertex3dv((GLdouble *)vertex);
}
还有下面也有一个类似的错误情况:
本来代码是这样的:
tobj = gluNewTess();
gluTessCallback(tobj, GLU_TESS_VERTEX, glVertex3dv);
/*这行出错*/错误编码为
error C2664: 'gluTessCallback' : cannot convert parameter 3 from 'void (const double *)' to 'void (__stdcall *)(void)'其中const double *对应的为glVertex3dv,不能转化为(__stdcall *)(void)格式,那么
就强制转换了,给glVertex3dv加上((__stdcall *)(void))前缀即可:
gluTessCallback(tobj, GLU_TESS_VERTEX,
(void (__stdcall *)())glVertex3dv);
搞定了
摘自:http://hi.baidu.com/198572/blog/item/d2e08ccb5c6259fe52664f93.html
- gluTessCallback出错【转】
- OpenGL: 多边形分格化 和 gluTessCallback() 函数在c++中的使用方法
- 《高效学习OpenGL》 之 多边形分格化 gluNewTess(),gluTessCallback(),gluTessProperty(),gluTessBeginPolygon()
- OpenGL: 多边形分格化 和 gluTessCallback() 函数在c++中的使用方法
- TransactionScope出错 (转)
- 【转】Windows内存出错
- 出错
- 出错
- 出错
- 出错
- opengl红宝书第11章, gluTessCallback函数的例子在vs.net编译不过的解决方法
- MYSQL出错代码及出错信息对照(转)
- WSAEWOULDBLOCK send 出错(转)
- php string转int出错
- java 对象转xml出错
- 【转】MYSQL出错代码列表
- c语言常见出错信息(转)
- [转] Release 版会出错可能原因
- 关于WINSOCK.H与winsock2.h中的重定义解决办法分析
- 加载CKeditor
- windows下Oracle的安装问题
- iphone:加载本地资源中的网页
- 技术交流群
- gluTessCallback出错【转】
- 第三章 NASM语言
- 为什么要教孩子学会理财
- 详细图解IIS6安装与配置.net 2.0的过程
- [学习]Hibernate 3.2 学习笔记之六
- 分页,利用封装了自写标签和业务处理的jar包实现!!!
- Frac函数
- datagridview加载数据后默认不选中首行
- exercise_1_2