1
- un retour de la fonction Lua deux nombres
- C++ appelle la fonction Lua: foo
- Je ne sais pas s'il est nécessaire de la pop la valeur de retour de la fonction foo (lua_pop (L, 2);) .
- s'il vous plaît dites-moi comment le faire et pourquoi. Merci beaucoup.
code partie comme ceci:c appelle la fonction lua, la valeur de retour est sur la pile.Besoin je l'éclate?
// lua function
function foo(a, b)
return a+b, a-b;
end
// c++
lua_getglobal(L,"foo"); // push function
lua_pushnumber(L,1); // push argument 1
lua_pushnumber(L,2); // push argument 2
error=lua_pcall(L, 2, 2, 0);
if (!error) {
printf("return:%s\n",lua_tostring(L,-1));
printf("return:%s\n",lua_tostring(L,-2));
// is this needful
lua_pop(L,2);
}
En cas d'erreur, vous devez également afficher l'objet d'erreur – moteus
. Si vous êtes paresseux, lua_pop (l, lua_gettop (l)) fera disparaître toutes les autres entrées de la pile. –
'lua_settop (L, 0)' semble plus idiomatique pour effacer la pile – Adam