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 に答える