W przykładzie kodu: http://lua-users.org/wiki/SimplerCppBindingPrzenoszenie do Lua 5.2 LUA_GLOBALSINDEX kłopoty
Jest to kod:
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);
w Lua 5.2 LUA_GLOBALSINDEX już nie istnieje. Zamiast tego ma lua_setglobal() i lua_getglobal().
mam rację sądząc, że:
lua_pushvalue(L, methods);
lua_setglobal(L, T::className);
... jest prawidłowy dla:
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);
jestem zbyt nowe dla Lua, aby mieć pewność, I haven używał go przez 8 miesięcy. Patrząc na dokumentację, jestem myślenie jest to poprawne, ale chciałbym weryfikacji.
Tak, ale czy poprawnie używam lua_setglobal()? lua_pushvalue (L, metody); lua_setglobal (L, T :: className); –
@ComServant, jeśli 'T :: className' to" char * ", to tak. Czy to nie działa? – lhf