我正在开发一个包含大量类(150+)的 C++ 项目,每个类都有 10 到 300 个字段左右。我真的希望能够提供一个用于测试目的的脚本接口,以便我可以编写不需要任何重新编译的回调代码。我想在 Lua 中执行此操作,因为我对它的 C API 比对 Python 更熟悉,但如果它能省去麻烦,我很乐意在 Python 中执行此操作。
我已经充分掌握了如何从 C++ 调用 Lua 函数,反之亦然,并且我知道如何来回传递基本数据类型。我的问题是如何使用 SWIG 在两者之间共享用户指定的数据类型。
例如,在我的 C++ 中的某个时刻,我可能想要计算一个具有 250 个字段的对象中的几条成员数据。我希望能够将该对象交给 Lua,然后 Lua 可以(希望如此?)使用生成的 SWIG 包装器来操作该对象,显示某些字段,然后将(可能更改的)对象传递回 C++ 以继续使用。
我还希望能够使用包装器在 Lua 中实例化该对象的实例,并将其传递给 C++ 以用作该对象的普通 C++ 版本。
这可能吗?有人可以向我指出教程或明确的示例吗?
谢谢你尽你所能的帮助!
只要您使用 Swig 接口包装用户定义的类型(请参阅here有关 Swig-Lua API 的文档),交互应该是无缝的。提供的 Swig 包装器将允许您实例化新对象,将它们传递给 C++,反之亦然。
我不认为 Swig-Lua 包装支持导向器类,这意味着扩展现有类、实例化它们并将它们传递回 C++ 是不可能的。不过,Python、Java、C# 等语言都支持控制器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)