En el ejemplo de código: http://lua-users.org/wiki/SimplerCppBindingportar a Lua 5.2, LUA_GLOBALSINDEX problemas
No es el código:
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);
En Lua 5.2, LUA_GLOBALSINDEX ya no existe. En cambio, tiene lua_setglobal() y lua_getglobal().
Estoy en lo correcto al pensar que:
lua_pushvalue(L, methods);
lua_setglobal(L, T::className);
... sea el repuesto correcto para:
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);
soy demasiado nuevo en Lua para estar seguro, no he Lo usé por 8 meses. En cuanto a la documentación, estoy pensando esto es correcto, pero me gustaría la verificación.
Sí, pero ¿estoy usando lua_setglobal() correctamente? lua_pushvalue (L, métodos); lua_setglobal (L, T :: className); –
@ComServant, si 'T :: className' es un' char * ', entonces sí. ¿No está funcionando? – lhf