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

几年前,我使用 luabind 将 C++ 对象与 Lua 相互绑定。可以将现有的(通过 C++ 代码中的 new 运算符分配的)对象绑定到 Lua 中,并在脚本中使用它:

binded_object.property = new_value

现在,我正在开发一个新项目,希望添加一些脚本功能。为了简化起见,不希望使用任何重型模板或 Boost。所以我的问题是如何只使用 Lua C API 来实现绑定?

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

点赞
用户121674
用户121674

你需要使用 SWIG。不需要使用 Boost 或是过多的模板,你只需要想要的所有绑定,在你方便的情况下自动生成。

现在,你的问题并不完全清楚:当你说“只使用 Lua C Api”时,你可能指的是“在我自己编写的代码中手动调用所有的 Lua C Api”。如果是这样的话,从一个曾经身临其境的人的角度来看:_你实际上不想这样做_。这很困难而且没有任何回报。使用 SWIG。如果你想,你可以手动编辑它生成的绑定,但请使用 SWIG。

2013-02-25 16:58:51