LUA TIP

本文介绍Lua语言中FFI库、第三方包管理、正则表达式库、C++Lua封装、调试器等核心技术和工具,涵盖从基础库到高级调试方案的全面指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. lua-zmp
  2. luajit  FFI库,直接lua脚本中写C语言,省去bind或自己写userdata。
  3. LuaRocks  Versioned Components For Lua   第3方包管理工具。
  4. lrexlib 正则表达式库
  5. LOOPLua Object-Oriented Programming
  6. LuaNode  Asynchronous I/O for Lua
  7. c++ lua wrapper

    oolua, luabind,tolua

    OOLua is quicker than ToLua++ and Luabind, and it won’t need to have boost as Luabind, won’t to have complex build steps as ToLua++.

  8. lua debuger

    rldb
    http://luaforge.net/projects/rldb/

    decoda

    http://www.unknownworlds.com/decoda

    remdebug

    http://www.keplerproject.org/remdebug/

    lldebug

    http://luaforge.net/projects/lldebug/
    http://kneo.blogbus.com/logs/24242949.html
    http://code.google.com/p/lua-debugger/
    http://www.cppblog.com/airtrack/archive/2011/01/06/137825.html
    http://blog.youkuaiyun.com/pankun/archive/2009/04/07/4055614.aspx
    hrld

  9.  lua 反编译  luadec

  10. lua 单元测试

    lmock

    http://luaforge.net/projects/lmock

    luaunit

    1. require"luaunit"  
    2. require"lmock"  
    3. function foo() error() end  
    4. function invoke_foo() return foo("lua") end  
    5. Test = {}  
    6. function Test:testInvokeFoo()  
    7.   local mock = lmock.create()  
    8.   mock:method( "foo" )  
    9.     :expects( lmock.once() )  
    10.     :with( lmock.eqx("lua") )  
    11.     :will(10)  
    12.   local rst = mock:run( invoke_foo , "lua" )  
    13.   assert_equals( rst , 10 )  
    14.   mock:verify()  
    15. end  
    16. LuaUnit:run()  

     

  11. IDE : DForD LuaCoding
  12. 获取当前文件名 debug.getinfo(1).source
  13. lua中只有table和full userdata有不同的metatable。其他类型都是:一个类型共享一个metatable。比如number, string各自有自己的metatable。以及所有的lightuserdata,由于是void *,即使放入的是不同的类型,也是视为一个类型,共享一个metatable;所以给null的lightuserdata设置metatable,等同于给所有lightuserdata设置了metatable。"lua_pushlightuserdata(L,NULL);放入metatable;    lua_setmetatable(L,-2);"
  14. lua的一个C库,dll或so。源码中对lua开放的就一个函数,require这个库的时候,等于调用这个函数。所以这个函数push了几个值到lua栈,就等于返回几个值。目前看到都是只push一个值的:一种是push只有一个函数,一种是push一个table可以含有一堆函数。使用的时候在lua内用一个local xxx = require "xxx"。
  15. lua的库,开放的函数必须 为 int _EXPORT luaopen_XXX (lua_State* L)  XXX和文件名必须一样,不然会出现error loading module “XXX”  from file的错误。
我要啦免费统计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值