结构指向void*的函数

Struct to function who spect void*

本文关键字:函数 void 结构      更新时间:2023-10-16

我有这样一个函数:

void mouseHandler(int event, int x, int y, int flags, void *roi){
roi->foo=foo;
....
}

我想这样调用它发送一个结构体:

struct Roi{
    Point point1, point2;
    int drag;
    Rect rect;
    Mat img, roiImg;
    int select_flag;
};
struct Roi roi;
cvSetMouseCallback("image", mouseHandler, (void*)&roi);
我有问题,因为我不知道怎么做…帮助请

您需要在访问成员之前将roivoid*强制转换为Roi*

Roi* realRoi = static_cast<Roi*>(roi);
realRoi->foo=foo;