修改lua_tinker以支持lua5.2

    由于lua_tinker是在lua5.0的时候开发的,后来作者不知道哪去了,也不维护一下。还好lua5.1对c接口的改动不大,所以lua_tinker可以不作任何修改就可以支持lua5.1。但lua5.2的一项修改是去掉了LUA_GLOBALINDEX这个宏,所以lua_tinker中用到的lua_settable(L, LUA_GLOBALINDEX)和lua_gettable(L, LUA_GLOBALINDEX)就编译出错了。
    修改的办法是用lua_setglobal和lua_getglobal来替换原来的lua_settable和lua_getglobal。比如旧代码:
lua_pushstring(L, name);
lua_pushnumber(L, 100);
lua_settable(L, LUA_GLOBALINDEX);
    改为:
lua_pushnumber(L, 100);
lua_setglobal(L, name);
    之前为什么不用lua_setglobal呢?这是因为lua5.0版本的时候还没有这个接口=,=。

    另外吐槽一下lua5.2把lua_open这个宏去掉了,只能直接使用luaL_newstate接口。这样lua_close就没有对应的open接口了啊,混蛋!下个版本加个lua_delstate的接口吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值