我正在一个C++项目中工作,其中有大量的类(150+),每个类都有10到300个字段。我希望能够提供一个脚本界面,以便进行测试,这样我就可以编写不需要重新编译的回调函数。由于我比较熟悉Lua的C API,因此我希望使用Lua来实现这一点,但如果使用Python会更方便,我也很愿意尝试。
我已经了解了如何从我的C++代码中调用Lua函数,以及如何在Lua和C++之间传递基本数据类型。我想知道的问题是如何使用SWIG在两者之间共享用户指定的数据类型。
例如,在我的C++代码中的某些时候,我可能想要评估一个具有250个字段的对象中的几个成员数据。我希望能够将该对象交给Lua,然后(希望)使用生成的SWIG包装器来操作该对象,显示特定字段,然后将(可能已更改的)对象传递回C++以继续使用。
我还希望能够在Lua中使用SWIG包装器实例化一个对象的实例,并将其传递给C++,以便像普通的C++版本一样使用该对象。
这是可能的吗?有人能向我指出教程或明确的示例吗?
感谢您能提供的任何帮助!
我已经了解了如何从我的C++代码中调用Lua函数,以及如何在Lua和C++之间传递基本数据类型。我想知道的问题是如何使用SWIG在两者之间共享用户指定的数据类型。
例如,在我的C++代码中的某些时候,我可能想要评估一个具有250个字段的对象中的几个成员数据。我希望能够将该对象交给Lua,然后(希望)使用生成的SWIG包装器来操作该对象,显示特定字段,然后将(可能已更改的)对象传递回C++以继续使用。
我还希望能够在Lua中使用SWIG包装器实例化一个对象的实例,并将其传递给C++,以便像普通的C++版本一样使用该对象。
这是可能的吗?有人能向我指出教程或明确的示例吗?
感谢您能提供的任何帮助!