几年前,我使用luabind将C ++对象绑定到Lua,反之亦然。有一种方法可以将现有的(通过C ++代码中的new运算符分配)对象绑定到Lua并在脚本中使用它:
binded_object.property = new_value
现在我正在开发一个新项目,我想在其中添加一些脚本。为简单起见,不需要增强或任何重模板。所以我的问题是如何只使用Lua C Api?
不幸的是,我遇到的所有示例都显示了如何将自定义C ++类型绑定到Lua,然后在脚本中创建该类型的新对象,最后将对象返回给C ++。
答案 0 :(得分:1)
你想要SWIG。没有Boost,没有繁重的模板,只有你想要的所有绑定,为了你的方便而自动生成。
现在,您的问题并不完全清楚:“只有Lua C Api”,您可能意味着“在我自己编写的代码中手动执行所有Lua C API调用”。如果这就是你的意思,那就是那些去过那里的人:你实际上并不想那样做。这很困难而且没有收获,你得到的任何东西都没有任何交换。使用SWIG。如果需要,可以手动编辑它生成的绑定,但使用SWIG。