在lua官方给出的api中
lua_pushcfunction
要求的是,c函数的格式必须是
typedef int (*lua_CFunction) (lua_State *L);
这种格式的,那对于不是这种格式的,我该如何处理?
遇到的问题:
我在widget中添加了一个函数
cocos2d::ui::Widget::ccWidgetClickCallback & Widget::getClickEventListener()
{
return this->_clickEventListener;
}
并且用tolua工具生成了对应的函数
int lua_cocos2dx_ui_Widget_getClickEventListener(lua_State* tolua_S)
但是在这个函数中
if (argc == 0)
{
if(!ok)
{
tolua_error(tolua_S,"invalid arguments in function 'lua_cocos2dx_ui_Widget_getClickEventListener'", nullptr);
return 0;
}
std::function<void (cocos2d::Ref *)>& ret = cobj->getClickEventListener();
#pragma warning NO CONVERSION FROM NATIVE FOR std::function;
//lua_pushcclosure (tolua_S,ret);
return 1;
}
却提示无法转换下去了?
那么这里我该如何处理?求大腿教我