私は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'
次のエラーを取得します。
あなたはstaticとしてCreateFnを定義していますか? –