कोड उदाहरण में: http://lua-users.org/wiki/SimplerCppBindingलुआ 5.2 करने के लिए Porting, 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);
लुआ 5.2 में, LUA_GLOBALSINDEX अब मौजूद नहीं है। इसके बजाए, इसमें lua_setglobal() और lua_getglobal() है।
Am मैं यह सोच कर कि में ठीक करें:
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);
मुझे यकीन है कि होने के लिए भी लुआ के लिए नया हूँ, मैं हेवन:
lua_pushvalue(L, methods);
lua_setglobal(L, T::className);
... के लिए सही प्रतिस्थापन है इसे 8 महीने तक इस्तेमाल नहीं किया। प्रलेखन को देखते हुए, मैं सोच रहा हूं यह सही है, लेकिन सत्यापन चाहते हैं।
हां, लेकिन क्या मैं lua_setglobal() का सही उपयोग कर रहा हूं? lua_pushvalue (एल, विधियों); lua_setglobal (एल, टी :: कक्षा नाम); –
@ कॉमसर्वेंट, यदि 'टी :: क्लासनाम '' char * 'है, तो हाँ। क्या यह काम नहीं कर रहा है? – lhf