6
在代碼示例:http://lua-users.org/wiki/SimplerCppBinding移植到Lua 5.2,LUA_GLOBALSINDEX麻煩
有代碼:
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個月。看文檔,我是想着這是正確的,但想驗證。
是的,但我正確使用lua_setglobal()嗎? lua_pushvalue(L,methods); lua_setglobal(L,T :: className); – 2012-01-30 16:08:55
@ComServant,如果'T :: className'是'char *',那麼是的。它不工作? – lhf 2012-01-30 22:04:03