我正在使用大量类(150+)的C++项目,每个类都有10到300个字段左右的区域。我真的很想为测试目的提供一个脚本接口,这样我就可以编写不需要重新编译的回调代码。我想在Lua中这样做,因为我比C++更熟悉C API,但如果它能够节省头痛,我很乐意在Python中完成这项工作。通过Swig在C++和Lua之间传递变量
我已经牢牢掌握了如何从我的C++调用Lua函数,反之亦然,并且我知道如何来回传递基本数据类型。我的问题是如何使用SWIG在两者之间共享用户指定的数据类型。
例如,在我的C++中的某个时候,我可能想要在包含250个字段的对象中评估几条成员数据。我希望能够将该对象交给Lua,然后可以(希望?)使用生成的SWIG包装来操作该对象,显示某些字段,然后将(可能更改的)对象传递回C++以供继续使用。
我还希望能够使用包装器在Lua中实例化对象的实例,并将其传递给C++以用作该对象的正常C++版本。
这可能吗?有人能指点我一个教程或一个明确的例子吗?
感谢您提供的任何帮助!
这很好,谢谢你的链接!即使只是单向也是一个很大的帮助。 即使我不能在Lua中创建一个对象的全新实例并将它传回给C++,您知道我是否可以*修改*传递给Lua的现有C++对象?也就是说,我可以创建一个C++对象,将它传递给Lua,更改Lua中的几个字段,然后在C++中使用它更新的字段? – zslayton 2009-05-19 19:23:35