首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移植到Lua5.2,LUA_GLOBALSINDEX麻烦

移植到Lua5.2,LUA_GLOBALSINDEX麻烦
EN

Stack Overflow用户
提问于 2012-01-29 23:57:12
回答 1查看 5.6K关注 0票数 6

在代码示例中:http://lua-users.org/wiki/SimplerCppBinding

这是守则:

代码语言:javascript
复制
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); 

在Lua5.2中,LUA_GLOBALSINDEX不再存在。相反,它有lua_setglobal()和lua_getglobal()。

我是否正确地认为:

代码语言:javascript
复制
lua_pushvalue(L, methods);
lua_setglobal(L, T::className);

...is正确的替换:

代码语言:javascript
复制
lua_pushstring(L, T::className);
lua_pushvalue(L, methods);
lua_settable(L, LUA_GLOBALSINDEX);

我对Lua太陌生了,我已经8个月没用过了。查看文档,我认为这是正确的,但希望得到验证。

EN

回答 1

Stack Overflow用户

发布于 2012-01-30 10:23:55

使用lua_settable(L,LUA_GLOBALSINDEX);代替lua_setglobal(L,T::className);。这在Lua 5.1和5.2中都有效。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9057943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档