由于cocos2dx-lua是用的lua5.1版本庶诡,所以有些lua函數(shù)有些不同luaL_newlib
內(nèi)容如下
int luaopen_libname(lua_State *L)
{
? ? static const luaL_Reg funcs[] = {
{"func1", func1},
? ? ? ? {"func2", func2},
{NULL, NULL}
? ? };
#ifdef lua5.1
//5.1 下直接使用luaL_register 就好
? ? luaL_register(L, "libname", funcs);
#else //lua5.2
? ? lua_newtable(L);
? ? //先把一個table壓入VS象对,然后在調(diào)用luaL_setfuncs就會把所以的func存到table中
? ? //注意不像luaL_register這個table是個無名table流椒,可以在的使用只用一個變量來存入這個table析既。
? ? //e.g local clib = require "libname". 這樣就不會污染全局環(huán)境牲尺。比luaL_register更好。
? ? luaL_setfuncs(L, funcs, 0);
#endif
? ? return 1;? //返回table
}
#if LUA_VERSION_NUM < 502
#define luaL_newlib(L,l) (lua_newtable(L), luaL_register(L,NULL,l))
#endif
或者
#if (LUA_VERSION_NUM == 501)
#define luaL_setfuncs(L,f,n) luaL_register(L,NULL,f)
#define luaL_newlib(L,f) luaL_register(L,"lpeg",f)
#endif