2011-06-22 19 views

Odpowiedz

15

Tak.

int top = lua_gettop(L); 
luaL_loadstring(L, "return 3, 4, 5"); 
int R = lua_pcall(L, 0, LUA_MULTRET, 0); 
int nresults = lua_gettop(L) - top; 

użyć LUA_MULTRET, a następnie użyj lua_gettop aby dowiedzieć się wierzchołek stosu przed i po zakończeniu rozmowy.

+0

Dzięki! Tylko uwaga dla innych osób takich jak ja, którzy popełnili błąd polegający na braku szczegółów: powyższy (poprawny) przykład używa 'luaL_loadstring' * do wypychania funkcji na stosie *, jeśli funkcja już tam jest (tak jak w moim przypadku) nresulty będą wymagały +1, lub otrzymasz błędną liczbę wyników (jak w moim przypadku ...). – Rick77

Powiązane problemy