- lua-zmp
- luajit FFI库,直接lua脚本中写C语言,省去bind或自己写userdata。
- LuaRocks Versioned Components For Lua 第3方包管理工具。
- lrexlib 正则表达式库
- LOOP:Lua Object-
Oriented Programming - LuaNode Asynchronous I/O for Lua
-
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++.
-
lua debuger
rldb
http://luaforge.net/projects/rldb/
decodahttp://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
-
lua 反编译 luadec
-
lua 单元测试
lmock
http://luaforge.net/projects/lmock
luaunit
- require"luaunit"
- require"lmock"
- function foo() error() end
- function invoke_foo() return foo("lua") end
- Test = {}
- function Test:testInvokeFoo()
- local mock = lmock.create()
- mock:method( "foo" )
- :expects( lmock.once() )
- :with( lmock.eqx("lua") )
- :will(10)
- local rst = mock:run( invoke_foo , "lua" )
- assert_equals( rst , 10 )
- mock:verify()
- end
- LuaUnit:run()
- IDE : DForD LuaCoding
- 获取当前文件名 debug.getinfo(1).source
- 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);"
- lua的一个C库,dll或so。源码中对lua开放的就一个函数,require这个库的时候,等于调用这个函数。所以这个函数push了几个值到lua栈,就等于返回几个值。目前看到都是只push一个值的:一种是push只有一个函数,一种是push一个table可以含有一堆函数。使用的时候在lua内用一个local xxx = require "xxx"。
- lua的库,开放的函数必须 为 int _EXPORT luaopen_XXX (lua_State* L) XXX和文件名必须一样,不然会出现error loading module “XXX” from file的错误。
LUA TIP
最新推荐文章于 2025-08-14 19:28:21 发布