luaCAPI基础部分

luaL_newState()//创建Lua状态
lua_pushnumber(L, value)
lua_pushstring(L, value)


lua_isnumber(L, index)
lua_isstring(L, index)  成功返回1,否则返回0


lua_tonumber(L, index)  //获取栈上的值
lua_tostring(L, index)


lua_getglobal(L, "add");  //获取lua里面的add函数并把它放到lua的栈顶
lua_gettable(L, -2) //获取栈上的表,压入栈


lua_gettop (L); //返回栈顶索引(即栈长度)
lua_settop(L, 0);  // /* 重置栈顶索引 */


lua_close(L); 


lua_call(L, 0, 0);  //执行函数,0个参数,0个返回值  会将返回值压入栈中,
lua_call(L, 2, 1, 0);


lua_pcall




lua_setfield    将lua_push*到栈中的值,设置到table对应的key中。
lua_getfield(lua_State *L, int idx, const char *k),这个函数用以获取表中对应key的value。
其中参数idx是表在栈中的位置,k是表中的key。其实它就相当于这两个函数的组合,
lua_pushstring(L, key) && lua_gettable(L, idx),这里key必须位于栈顶。






lua_setglobal(L, "getTwoVar");   //设置lua全局变量getTwoVar,lua中可以根据getTwoVar来得到堆栈上面的值


宏lua_setglobal向lua全局_G表中存放变量。
宏lua_getglobal从lua全局_G表中取得变量。




luaL_checkstring(lua_State *L, int numArg)
检查第numArg个参数是不是string


luaL_argcheck(L, cond,numarg,extramsg)
宏luaL_argcheck检查给定的条件cond,如cond为真值或真值表达式,numarg表示出错参数的位置,extramsg为抛出的错误信息。


 
int bRet = luaL_loadfile(L,"hello.lua"); //加载Lua文件 















你可能感兴趣的:(lua)