Ich bin in Lua in eine C/C++ - Anwendung eingebettet. Gibt es eine Möglichkeit, eine Lua-Funktion von C/C++ aufzurufen, ohne zuerst das gesamte Skript auszuführen?Aufruf von Lua-Funktion ohne Skript auszuführen
Ich habe versucht, dies zu tun:
//call lua script from C/C++ program
luaL_loadfile(L,"hello.lua");
//call lua function from C/C++ program
lua_getglobal(L,"bar");
lua_call(L,0,0);
Aber es gibt mir diese:
PANIC: unprotected error in call to Lua API (attempt to call a nil value)
ich nur bar() aufrufen können, wenn ich dies tun:
//call lua script from C/C++ program
luaL_dofile(L,"hello.lua"); //this executes the script once, which I don't like
//call lua function from C/C++ program
lua_getglobal(L,"bar");
lua_call(L,0,0);
Aber es gibt mir das:
hello
stackoverflow!!
ich dies wollen:
stackoverflow!
Das ist mein lua Skript:
print("hello");
function bar()
print("stackoverflow!");
end
Da Sie das Skript ausführen, um die Lua VM, um es zu sehen, wie Etan angezeigt Sie 'extrahieren aus Funktion bar() 'zu einer anderen Datei und nur diese Datei ausführen. – greatwolf