移植到Lua 5.2,Lua_GLOBALSINDEX

移植到Lua 5.2,Lua_GLOBALSINDEX,lua,lua-5.2,Lua,Lua 5.2,在代码示例中: 代码如下: 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_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_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);

我对Lua来说太新了,我已经8个月没用了。查看文档,我认为这是正确的,但希望验证

而不是
lua_setable(L,lua_GLOBALSINDEX)使用
lua_setglobal(L,T::className)。这在Lua 5.1和5.2中都适用。

是的,但我是否正确使用了Lua_setglobal()?lua_值(L,方法);lua_setglobal(L,T::className)@ComServant,如果
T::className
char*
,则是。它不起作用吗?
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);