使用Lua C API将现有的C变量绑定到Lua

Bind existing C variable to Lua using Lua C API

本文关键字:Lua 变量 绑定 API 使用      更新时间:2023-10-16

几年前,我使用luabind将C++对象绑定到Lua,反之亦然。有一种方法可以将现有的(通过C++代码中的新运算符分配的)对象绑定到Lua,并在类似的脚本中使用它

binded_object.property = new_value

现在我正在进行一个新项目,我想在其中添加一些脚本。为了简单起见,不需要助推或任何沉重的模板。所以我的问题是如何只使用LuaCApi?

不幸的是,我遇到的所有例子都展示了如何将自定义C++类型绑定到Lua,然后在脚本中创建该类型的新对象,并最终将该对象返回到C++。

您想要SWIG。没有Boost,没有沉重的模板,只有你想要的所有绑定,为你的方便自动生成。

现在,您的问题还不完全清楚:"只有Lua C Api",您的意思可能是"在我自己编写的代码中手动进行所有Lua C Api调用"。如果这就是你的意思,那就从去过那里的人那里得到:你实际上并不想这么做。这很难而且没有回报,而且你什么都得不到。使用SWIG。如果需要,可以手动编辑它生成的绑定,但要使用SWIG。