Nell'esempio di codice: http://lua-users.org/wiki/SimplerCppBindingporting Lua 5.2, LUA_GLOBALSINDEX problemi
V'è il codice:
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);
In Lua 5.2, LUA_GLOBALSINDEX non esiste più. Invece, ha lua_setglobal() e lua_getglobal().
Am Ho ragione a pensare che:
lua_pushvalue(L, methods);
lua_setglobal(L, T::className);
... sia quello corretto per:
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);
Sono troppo nuova per Lua per essere sicuro, mi rifugio Lo ho usato per 8 mesi. Guardando la documentazione, sono che pensa questo è corretto, ma vorrei la verifica.
Sì, ma sto usando lua_setglobal() correttamente? lua_pushvalue (L, metodi); lua_setglobal (L, T :: className); –
@ComServant, se 'T :: className' è un' char * ', quindi sì. Non funziona? – lhf