3

我最近将我的旧 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 值”。

我的源代码在这里可用。我应该如何处理LUA_GLOBALSINDEX?我应该把它改成什么?

4

1 回答 1

3

使用lua_getglobal(globalL,startgamefunction.c_str()),它适用于 5.1 和 5.2。

于 2012-06-19T01:38:41.293 回答