Мне нужно реализовать некоторые функции обратного вызова из внешней 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);
}
Я уже пробовал статический метод без успеха.
Решено после изменения объявления метода:
static GRCAP_STATUS_EVENT_PROC StatusEventHandler;