认识lua

lua_State *L = lua_open(); //建立一个LUA状态机
 
  luaopen_base(L); // 启动它
 
  const char *buf = "print('hello, world!')";
  lua_dostring(buf); //把buf写入到lua中并执行
 
  lua_close(L); // 关闭L
 
  lua_pushstring(L, "var"); //将变量的名字放入栈]
 
  lua_getglobal(L, "var"); //变量的值现在栈顶
 
  int var = lua_tonumber(L, -1); //取得栈顶的元素
 
  lua_tostring( ls, -1 ); //取得栈顶的的元素, 一般用于参数传递
 
  lua_pushstring( ls, s_szPlayer ); //把某个字符串元素压入栈中,可用于参数传出
 
  lua_pushnumber(L, 200); //把某个数字元素压入栈中,
 
  lua_register(L, "foo", foo); 
 
//把自己在C++中编写的函数foo拿到lua中注册,这样在lua脚本中就可以调用这个函数

 

Lua比较适合在一个线程里调用,lua操作的是一个虚拟的“栈”,压入弹出数据必须有序,多线程是无序执行的。远程注入dll调用lua是不明智的,因为远程注入总是另外开启线程,不崩溃只能说明“栈”暂时没被破坏,因为不是所有lua接口都要操作“栈”(压入或是弹出)。 

转载于:https://www.cnblogs.com/15157737693zsp/p/3854887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值