Я пытаюсь выяснить синтаксис для регистрации обратного вызова с этим сторонним программным обеспечением.Я думаю, что это, вероятно, основной вопрос, я просто не слишком знаком с C ++.У них есть метод для регистрации функции обратного вызова, чтобы их код мог вызывать функцию в моем коде, когда происходит событие.Они предоставили рабочий пример, который регистрирует обратный вызов из основного файла, но я хочу знать, как это сделать при работе внутри класса
Их сигнатура метода:
smHTRegisterHeadPoseCallback(smEngineHandle engine_handle, void *user_data, smHTHeadPoseCallback callback_fun);
Рабочий пример изосновной файл:
void STDCALL receiveHeadPose(void *,smEngineHeadPoseData head_pose, smCameraVideoFrame video_frame)
{
...
}
void main()
{
...
smHTRegisterHeadPoseCallback(engine_handle,0,receiveHeadPose)
...
}
Но я хочу использовать это из моего класса
MyClass.h
class FaceEngine
{
public:
void STDCALL receiveFaceData(void *, smEngineFaceData face_data, smCameraVideoFrame video_frame);
...
MyClass.cpp
void FaceEngine::Start(void)
{
rc = smHTRegisterFaceDataCallback(hFaceAPIEngine,0,&FaceEngine::receiveFaceData);
...
Результаты в этой ошибке компилятора:
Error 1 error C2664: 'smHTRegisterFaceDataCallback' : cannot convert parameter 3 from 'void (__stdcall FaceEngine::* )(void *,smEngineFaceData,smCameraVideoFrame)' to 'smHTFaceDataCallback' d:\stuff\programming\visual studio 2008\projects\tut02_vertices\faceengine.cpp 43 Beard
Если мой вопрос не ясен, пожалуйста, дайте мне знать, как я могу уточнить.