lua基础知识
suhiymof
这个作者很懒,什么都没留下…
展开
-
lua调用c函数
lua调用C函数和C调用lua函数是使用相同类型的栈来交互。lua调用C使用的栈不是全局变量,每一个函数都有它自己的私有栈。当lua调用C函数的时候 第一个参数总是在栈的index=1的位置。lua中注册C函数必须有相同的原型:typedef int (*lua_CFunction) (lua_State* L);当lua调用C函数的时候,lua会把传入的参数全部压栈,然后在C函数中原创 2013-07-12 11:55:43 · 655 阅读 · 0 评论 -
lua中连接大量的字符串
如果我们需要连接大量的字符串或者字符,一个一个的连接方式效率是很低的。我们可以使用辅助库提供的buffer相关函数来解决这个问题。Auxlib中的buffer的使用:static int str_upper(lua_State* L){ size_t l; size_t i; luaL_Buffer b; const char* s =原创 2013-07-18 15:38:23 · 2905 阅读 · 0 评论 -
LUA C API
API有一些列压栈的函数,它将每种可以用C来描述的Lua类型压栈:空值(nil)用lua_pushnil,数值(double)用lua_pushnumber,布尔型(在C中用整数表示)用lua_pushboolean,任意的字符串(char*类型,允许包含'\0'字符)用lua_pushlstring,C语言风格(以'\0'结束)的字符串(const char*)用lua_pushstring原创 2013-07-05 14:39:49 · 783 阅读 · 0 评论 -
lua随笔记录
loadstring(),从一个串中读入chunk原创 2014-09-26 01:21:58 · 612 阅读 · 0 评论 -
linux lua编译成.so
打开scr目录下的makefile文件,可以看到有一行LUA_A=liblua.a,这个是生成静态库的文件名。我们要做的是加一行:LUA_SO = dllname.so,这个是相对路径。 比如LUA_SO=../../../sbin/linux/libluabase.so; 注意此处的相对路径是相对src目录而言;然后在将ALL_T修改为:ALL_T= $(LUA_A) $(LUA原创 2015-07-23 15:43:31 · 2349 阅读 · 0 评论 -
lua_pcall用法
lua_pcall(lua_State *L, int nargs, int nresults, int errfunc)nargs:参数个数,nresults:返回值个数,errFunc:错误处理函数,0表示无,表示错误处理函数在栈中的索引假如脚本为:--test.luafunction test(x,y)return x+yendluaL_loadfile(L, "原创 2013-07-06 15:51:22 · 12676 阅读 · 0 评论