luatinker 常用函数说明

uatinker 提供的 lua与 C++ 函数的相关接口函数 ,这样便可以屏蔽底层函数,大大提升了了开发效率,但是luatinker是韩国人写的 所以函数的说明是韩文的,所以我把经常用到函数的功能写下了,方便新手使用


lua_State *l= lua_open() 建立lua栈用于和C交互 luaopen_base(lua_State*L) 打开基本函数库 

lua_tinker::def(L,"name",name) 将函数名输入栈中,保证lua脚本可以正常使用,这样C++注册函数,lua便可以调用函数 

lua_tinker::dofile(L,"filename") 调用lua脚本文件
lua_close(lua_State *L); 关闭栈 

lua_tinker::call<void>(L, "print_table", temp); //调用lua中的函数,print_table 是函数名,temp 是参数名称,call也是模板函数,用于表明函数的返回类型,如果没有参数可以这个参数可以不写(本质是函数的重载)
lua_tinker::set(L, "cpp_int", cpp_int); 向栈中倒入变量, 

lua_tinker::dofile(L, "sample2.lua"); 打开文件
int lua_int = lua_tinker::get<int>(L, "lua_int"); 获取变量 luaopen_string(lua_State * l) //打开string库lua_tinker::class_add<base>(L,"base") //添加类也可以认为添加table
lua_tinker::class_add<T>(lua_State*L ,const char* name)//其作用有2个

其一通过class_name<T> 这个产生一个global name ,好让以后在lua_tinker这层融合里面把模板能识别的类转到lua能接受的全局字串上


lua_tinker::class_def<base>(L,"is_base",&base::is_base) 给栈注册函数 函数的参数不要是const类型的


lua_tinker::class_inh<test, base>(L); //告诉lua两个类的继承关系test 继承自base类,lua无法自己分辨类的继承关系,所以导致子类无法调用


lua_tinker::class_con<test>(L,lua_tinker::constructor<int>()); //用于注册构造函数,这样lua中的变量便可以轻松使用该类,并且可以初始化

lua_tinker::class_def<test>(L, "is_test", &test::is_test); 添加类的成员函数

luatinker中专门有table类,用于建立类似于lua中的table变量


lua_tinker::table haha(L,"haha")//建立表,表名为hahahaha.set("value",2) //给表赋值haha.set("inside", lua_tinker::table(L)); // 表中还可以再建立一个表


lua_tinker::table inside = haha.get<lua_tinker::table>("inside"); //获取table的值可以看到类的get函数和普通的get函数一样都是模板函数
因为get函数是从lua中取出变量到C中,所以与C不同必须声明类型,而set函数无需这样做因为,设置值是lua无需指定变量类型
lua_tinker::call<void>(L, "print_table", temp); //执行lua中的打印函数
lua_tinker::table ret = lua_tinker::call<lua_tinker::table>(L, "return_table", "give me a table !!"); //执行lua中的取值函数,并且设置函数的返回类型



lua_tinker::enum_stack(lua_State* L)//用于枚举lua栈中内容的。 lua_tinker::def(L, "_ALERT", show_error);//注册函数到栈中区,lua可以调用C/C++中的函数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值