Если функция не выдает никаких ошибок, lua_pcall выдаст:
- Удалить параметры из стека
- Перенесите результат в стек
Это означает, что если ваша функция не выдает никаких ошибок, вы можете сразу использовать lua_setfield - lua_pcall
будет работать так же, как lua_call :
lua_pushstring (lua, "funcname");
lua_gettable (lua, LUA_GLOBALSINDEX);
lua_pushstring(lua, "someparam");
lua_pcall (lua, 1, 1, 0);
lua_setfield(L, LUA_GLOBALSINDEX, "a"); /* set global 'a' */
будет эквивалентно:
a = funcname(someparam)