C++函数指针使用错误,返回menu指针,求c++高手解答

在类里定义一个返回menu对象的指针的函数creatMenu,用到CC_CALLBACK,
.h文件里的函数声明为 cocos2d::Menu* creatMenu(std::string& text, void (HelloWorld::pf)(Ref));

定义 Menu* HelloWorld::creatMenu(std::string& text, void (HelloWorld::pf)(Ref))
{
auto label = Label::createWithTTF(text, “fonts/Marker Felt.ttf”, 30);
MenuItemLabel* menulabel = MenuItemLabel::create(label, CC_CALLBACK_1(pf, this));
Menu* menu = Menu::create(menulabel, NULL);
return menu;
}

调用Menu* menu1 = HelloWorld::creatMenu((std::string)“new game”, &HelloWorld::menuCloseCallback);


编译之后 error C2064: 项不会计算为接受 2 个参数的函数
2> d:\软件\vs2013\vc\include\xrefwrap(118): 参见对正在编译的类 模板 实例化“std::_Result_of<_Fty,HelloWorld &,cocos2d::Ref &>”的引用
2> with
2>
2> _Fty=void (__thiscall HelloWorld::
*)(cocos2d::Ref *)
2> ]
2> d:\软件\vs2013\vc\include\functional(975): 参见对正在编译的类 模板 实例化“std::result_of<_Funx (HelloWorld &,cocos2d::Ref &)>”的引用
2> with
2>
2> _Funx=void (__thiscall HelloWorld::
*)(cocos2d::Ref )
2> ]
2> d:\软件\vs2013\vc\include\xrefwrap(283): 参见对正在编译的类 模板 实例化“std::_Do_call_ret<false,_Ret,void (__thiscall HelloWorld::
*)(cocos2d::Ref *),std::tuple<HelloWorld ,std::_Ph<1>>,std::tuple<_Ty &>,std::_Arg_idx<0,1>>”的引用
2> with
2>
2> _Ret=void
2> , _Ty=cocos2d::Ref *
2> ]
2> d:\软件\vs2013\vc\include\functional(228): 参见对正在编译的函数 模板 实例化“_Ret std::_Callable_obj<std::_Bind<false,_Ret,void (__thiscall HelloWorld::
*)(cocos2d::Ref *),HelloWorld const ,std::_Ph<1> &>,false>::_ApplyX<_Rx,_Ty>(_Ty &&)”的引用
2> with
2>
2> _Ret=void
2> , _Rx=void
2> , _Ty=cocos2d::Ref *
2> ]
2> d:\软件\vs2013\vc\include\functional(228): 参见对正在编译的函数 模板 实例化“_Ret std::_Callable_obj<std::_Bind<false,_Ret,void (__thiscall HelloWorld::
*)(cocos2d::Ref *),HelloWorld *const ,std::_Ph<1> &>,false>::_ApplyX<_Rx,_Ty>(_Ty &&)”的引用
2> with
2>
2> _Ret=void
2> , _Rx=void
2> , _Ty=cocos2d::Ref *
2> ]
2> d:\软件\vs2013\vc\include\functional(226): 编译类 模板 成员函数“void std::_Func_impl<_MyWrapper,_Alloc,_Ret,cocos2d::Ref *>::_Do_call(cocos2d::Ref *&&)”时
2> with
2>

pf是个类型吧

CC_CALLBACK_1(pf, this) pf只有一个参数 用CC_CALLBACK_1 两个参数CC_CALLBACK_2

你的Hello::*pf是什么,方法么?怎么定义的?

解决了吗亲,我用std::function和bind也同样出了问题,好像是对于带参数的函数指针的封装有问题,现在还没解决,求破,我用的编译器版本是VS2012