私は小さなLuaスクリプトを持っています:
function g ()
print( AUp);
end
CI からスクリプトをロードし、AUp という名前の変数を追加して、数百回実行します。
for( i=0; i<2000; i++)
{
num= i;
lua_pushnumber( L, i);
lua_setglobal( L, "AUp");
lua_getglobal( L, "g");
if (lua_call( L, 0, 0) != 0)
printf( "%s", lua_tostring(L, -1));
}
print の出力は常に 0 です。(i+1) を入力すると、出力は常に 1 になります。AUp の値を変更することはできません。lua_pushnumner と lua_setglobal への最初の呼び出しのように、値は同じままです。
なにが問題ですか?関数は何度も呼び出す必要がありますが、AUp の値は変更される可能性があるため、呼び出す前に更新する必要がありlua_call
ます。