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

我正在寻找一种解决方案,即如何将对象从 C 传递到 Lua 回调作为函数参数,这是否可能?我找不到任何参考资料。只是尝试这样做:

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

但在这种情况下,luabind 不是一个选择,因为它已过时,而且一些功能不起作用,可能是因为 boost,但不太清楚,这就是为什么我转而使用 toLua++,但仍然找不到任何解决方案。我只是想实现在 lua 回调中访问 C 中的数据:

function LUA_Callback(object1, object2)
    print(object1.name)
    print(object2.size)
end

有没有办法解决它或者使用(不使用 boost 的)库来完成这项任务?

点赞
用户501459
用户501459

这取决于你所谓的 “推送对象” 是什么意思。使用 API 例程,如 lua_pushstringlua_pushnumber 等,将数字、字符串、C 函数、表等 Lua 对象推送变得微不足道。

如果你想推送 C++ 对象,你需要创建和推送 userdata。如果你想让它们像来自 Lua 的对象一样行事,那么你需要适当的元表/方法。

2014-06-13 06:31:44