我要发帖 回复

新手上路

2

主题

5

积分

0

专家分

:

私信
发表时间 : 2007-10-11 11:43:25 | 浏览 : 1538    评论 : 2
怎么调用带参数的回调函数?

抱歉,刚才那个帖子发了一半.

我用OPenGL代码写了一个绘制波形的函数,想用回调函数调用,在场景中绘制.
但绘制波形函数的一些参数必须从外面传进来.
怎么才能通过回调函数将这些参数传到波形函数中?
请各位高手帮帮忙啊.

下面是部分代码

把所有要传的参数定义了一个结构体,如下:
struct callbackdata
{
float ax;float ay;float az;
float bx;float by;float bz;
};
这是回调函数触发的地方
void CMFCVegaView::OnShowBeam()
{
     ...............
     if (showbeamIN==true)
     {
       vgAddFunc(chan1, VGCHAN_POSTDRAW, DrawBeamNew, callbackdata *udata);
     }
}
下面是绘制波形的函数
void DrawBeamNew(vgCommon *handle,callbackdata *udata)
{
    ...................
    //OpenGL代码
  .............................
}
但总是编译不过,提示如下:
error C2275: 'callbackdata' : illegal use of this type as an expression

资料上的回调函数形式如下:
void MyFunc( vgCommon *handle ,void *udata);
难道指针只能是void类型吗? 其他的类型怎么办?
请高手指点啊.......

最近VR访客

obuil 评论于2007-10-12 09:02:38
参数应该是 最后一个函数参数可以用

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-10-26 02:12 AM

返回顶部