无法从“void (__thiscall CmazeView::* )(HDC)”转换为“void (__cdecl *)(HDC)”怎么办? 100

void(*idlefunc)(HDChDC);voidCmazeView::spinmaze(HDChDC){//绕两个坐标旋转迷宫图staticfloatspin=7... void (*idlefunc)(HDC hDC);

void CmazeView::spinmaze(HDC hDC)

{

//绕两个坐标旋转迷宫图

static float spin = 720.0f;

spin -= 5.0f;

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

glPushMatrix();

glTranslatef(0.0f, 0.0f, -20.0f);

glRotatef(spin, 0.0f, 1.0f, 1.0f);

glTranslatef(-MAZE_WIDTH / 2.0f, -MAZE_HEIGHT / 2.0f, 0.0f);

//调用两个显示列表,绘制迷宫顶部和侧面

glCallList(walllist);

glCallList(mazelist);

glPopMatrix();

SwapBuffers(hDC);

if (spin <= 0.0f)

{

spin = 720.0f;

idlefunc = &CmazeView::entermaze;

player_x = STARTING_POINT_X;

player_y = STARTING_POINT_Y;

player_h = STARTING_HEADING;

}

}

错误 4 error C2440: “=”: 无法从“void (__thiscall CmazeView::* )(HDC)”转换为“void (__cdecl *)(HDC)”
怎么办,初学者不太懂,按照pdf上做的,用的是VS2013
外加这个idlefunc的作用是什么
展开
 我来答
jimmy14888888
2015-07-02 · TA获得超过1340个赞
知道小有建树答主
回答量:550
采纳率:80%
帮助的人:356万
展开全部
你这个CmazeView::entermaze是成员函数,跟普通函数不一样的,__thiscall需要一个对象去调用的,可以用stl里面mem_fun包装一下
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式