类型为“void(Biometria :: *)(char * idSensor,GRCAP_FINGER_EVENTS事件)”的参数与“GRCAP_STATUS_EVENT_PROC *”类型的参数不兼容

时间:2014-02-05 00:14:24

标签: c++ dll wrapper dllimport

我需要从外部DLL实现一些回调函数,但我找不到将它放在我的类中的方法。

DLL方法:

//CALLBACK functions
typedef void CALLBACK GRCAP_STATUS_EVENT_PROC(char* idSensor, GRCAP_STATUS_EVENTS event);
DLLIMPORT
GrCapInitialize(GRCAP_STATUS_EVENT_PROC *StatusEventHandler);

我的课程:

Class Biometria {
public
void StatusEventHandler(char* idSensor, GRCAP_STATUS_EVENTS event);
}

// Consumes data from a status event.
void Biometria::StatusEventHandler(char* idSensor, GRCAP_STATUS_EVENTS event) {
    // Signaling that a status event occurred.
    if (event == GR_PLUG) {
        // Start capturing from plugged sensor.
        GrCapStartCapture(idSensor, myFingerCallBack, myImageCallBack);
    }
    else if (event == GR_UNPLUG) {
        // Stop capturing from unplugged sensor
        GrCapStopCapture(idSensor);
    }
}

我收到错误的地方:

int Biometria::Initialize() {
    //some code
    return GrCapInitialize(&Biometria::StatusEventHandler);
}

我已经尝试过使用静态方法但没有成功。

1 个答案:

答案 0 :(得分:0)

将方法声明更改为:

后解决
static GRCAP_STATUS_EVENT_PROC StatusEventHandler;