ulua

ulua底层实现

unity - >  C # - > C++ -> lua

要理解Lua和C++交互,首先要理解Lua堆栈。

简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。

在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。

luaL_newstate返回一个指向堆栈的指针

1 int   lua_gettop (lua_State *L);            //返回栈顶索引(即栈长度)
2 void  lua_settop (lua_State *L, int idx);   //              
3 void  lua_pushvalue (lua_State *L, int idx);//将idx索引上的值的副本压入栈顶
4 void  lua_remove (lua_State *L, int idx);   //移除idx索引上的值
5 void  lua_insert (lua_State *L, int idx);   //弹出栈顶元素,并插入索引idx位置
6 void  lua_replace (lua_State *L, int idx);  //弹出栈顶元素,并替换索引idx位置的值

xlua 需要重新编译第三方
    public const bool UsePbc = true;                           //PBC
    public const bool UseLpeg = true;                          //LPEG
    public const bool UsePbLua = true;                         //Protobuff-lua-gen
    public const bool UseCJson = true;                         //CJson
    public const bool UseSproto = true;                        //Sproto
    public const bool AutoWrapMode = true;                     //自动Wrap模式

==
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值