我不是C++的人,我在理解如何將函數指針/回調函數傳遞給方法時遇到了一些麻煩。回調的定義如下C++函數指針和回調函數
typedef HRESULT (CALLBACK *PFN_CREATE_XAMLOBJECT)(
IXRDependencyObject *pExistingXRDO,
UINT objectId
);
的方法,我試圖通過它也被定義爲如下(刪除了所有其他PARAMS)
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'
任何幫助將非常感激。
有你定義CreateFn爲靜態的? –