Я не парень C ++, и у меня возникли проблемы с пониманием того, как передать указатель на функцию / функцию обратного вызова в метод. Обратный вызов определяется следующим образом
typedef HRESULT (CALLBACK *PFN_CREATE_XAMLOBJECT)(
IXRDependencyObject *pExistingXRDO,
UINT objectId
);
Метод, который я пытаюсь передать, тоже определяется следующим образом (все остальные параметры удалены)
virtual HRESULT STDMETHODCALLTYPE RegisterXamlObject(
__in PFN_CREATE_XAMLOBJECT pfXamlObjectCreation,
) = 0;
Функция, которую я определил для передачи, выглядит следующим образом
HRESULT CreateFn(__in IXRDependencyObject *pExistingXRDO, UINT objectId)
{
return S_OK;
}
Я пытаюсь передать указатель функции следующим образом.
&MyClass::CreateFn
Я получаю следующую ошибку
Error 3 error C2440: 'type cast' : cannot convert from 'HRESULT (__cdecl MyClass::* )(IXRDependencyObject *,UINT)' to 'PFN_CREATE_XAMLOBJECT'
Любая помощь будет высоко ценится.