使用自定义数据作为函数参数调用lua回调

时间:2014-06-13 04:56:01

标签: c++ callback lua

我正在寻找解决方案如何将对象从C传递给lua回调作为函数参数,它甚至可能吗?我找不到任何引用。只是尝试这样的事情:

luabind::call_function(State, "Callback_name", object);

但是luabind在这种情况下不是一个选项,因为它已经过时了,另外一些功能可能不起作用,可能是因为我阅读的提升但不确切知道,这就是为什么我切换到了L ++,但仍然无法找到任何解决方案。我只是想在lua回调ex:

中实现从C访问数据
function LUA_Callback(object1, object2)
    print(object1.name)
    print(object2.size)
end

有没有办法解决它或库(没有提升)这样做?

1 个答案:

答案 0 :(得分:1)

这取决于你对“推送对象”的意思。使用lua_pushstringlua_pushnumber等API例程来推送数字,字符串,C函数,表等等 - 换句话说,Lua对象是微不足道的。

如果您正在谈论推送C ++对象,则需要创建并推送userdata。如果你希望它们像Lua中的对象一样,那么你将需要适当的metatable /方法。