Lua 中的常用API

2019-02-21 17:42:52 浏览数 (1)

luaL_newstate

  • lua_State *luaL_newstate (void);
  • 创建一个新的state

luaL_openlibs

  • void luaL_openlibs (lua_State *L);
  • 打开所有的标准lua库到指定状态,也就是把所有标准类库加载到指定的虚拟机.

luaL_loadfile

  • int luaL_loadfile (lua_State *L, const char *filename);
  • 加载文件的时候把它当一个lua模块
  • luaL_dofile和luaL_loadfile的区别
  • LUAL_LOADFILE的坑

lua_pcall

  • int lua_pcall (lua_State *L, int nargs, int nresults, int msgh);
  • nargs:参数个数
  • nresults:返回值个数
  • errFunc:错误处理函数,0表示无,表示错误处理函数在栈中的索引
  • 在保护模式下调用一个函数

lua_getglobal

  • void lua_getglobal (lua_State *L, const char *name);
  • 将全局名称的值压入堆栈

lua_newtable

  • void lua_newtable (lua_State *L);
  • 创建一个新的table并将其推入堆栈,它等价于lua_createtable(L, 0, 0).

lua_pushliteral

  • const char *lua_pushliteral (lua_State *L, const char *s);
  • 这个宏相当于lua_pushstsring,但只能在s是一个字符串时使用,它会自动提供字符串的长度.

lua_settable

  • void lua_settable (lua_State *L, int index);
  • 就是把表在lua堆栈中的值弹出来,index 是table 在堆栈中的位置,假如 table 在 -3, 则key 应该是 -2,value 是 -1 相当于 table[key] = value.

lua_call

  • void lua_call (lua_State *L, int nargs, int nresults);
  • 调用一个函数
  • nargs是你推入堆栈的参数个数. 函数调用时,所有参数和函数值从堆栈弹出.

0 人点赞