在代码示例中:http://lua-users.org/wiki/SimplerCppBinding http://lua-users.org/wiki/SimplerCppBinding
有代码:
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX); //<--- LUA_GLOBALSINDEX removed in Lua 5.2
lua_pushliteral(L, "__metatable");
lua_pushvalue(L, methods);
lua_settable(L, metatable);
在Lua 5.2中,LUA_GLOBALSINDEX不再存在。相反,它有 lua_setglobal() 和 lua_getglobal()。
我的想法是否正确:
lua_pushvalue(L, methods);
lua_setglobal(L, T::className);
...是以下内容的正确替换:
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);
我对 Lua 还很陌生,我已经 8 个月没有使用它了。看看文档,我是thinking这是正确的,但需要验证。