
Sol2:在C++中调用Lua脚本
Sol2:在C++中调用Lua脚本 本文档记录了在 C++ 代码中使用 sol2 嵌入 Lua 脚本时的一些个人理解。 向Lua中注册自定义用户类型 先看一段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 sol::state lua; lua.new_usertype<Type>("TypeName", // 类型构造函数 sol::constructors<ConstructFunc1, ConstructFunc2, ...> // 或使用:sol::no_constructor 来禁用 TypeName.new() // 成员变量 "member1", Type.valueptr1, "member2", Type.valueptr2, // 元方法 sol::meta_function::addition, AddFun1, sol::meta_function::substraction, SubFun1, sol::meta_function::multiplication, MultiplicationFun1, // 成员方法 "memberFunc1", MemberFunc1(), "memberFunc2", [](Type& self, /* args... */) { // 对应成员方法的第一个参数 // func... }, ); 这段代码用来向lua脚本中注册一个c++类型,支持一些基本的元方法重载(比如四则运算、比大小、迭代(pair或ipair)等)。 ...
