Lua从5.1版本升级 - LUA_GLOBALSINDEX问题

我最近将我的旧Lua 5.1项目更新到最新的库版本,我遇到了'LUA_GLOBALSINDEX'的问题 - 它变成了未定义的。我只在lua_getfield函数中使用它,如下所示:

void luastartgame(void)
{
    if(startgamefunction.empty())return ;
    lua_getfield(globalL, LUA_GLOBALSINDEX, startgamefunction.c_str()); // go to function in Lua script
    int numArgs = 0;
    int res = lua_pcall(globalL,numArgs,0, 0);

    if(!luaresf(res)) // did the function call result in an error?
    {
        return;
    }
}

我尝试用一些常量整数替换它 - 如果它不是0,我的程序会崩溃。如果是0,则运行时会提示“尝试访问nil值”。

我的源代码位于[这里](https://github.com/ThePiachu/Pickomino/blob/master/Pickomino/Scripting.h)。我应该如何处理'LUA_GLOBALSINDEX'?我该将它改成什么?

点赞
用户107090
用户107090

使用 lua_getglobal(globalL, startgamefunction.c_str()),在 5.1 和 5.2 版本中都有效。

2012-06-19 01:38:41