Estoy integrando Lua en una aplicación C/C++. ¿Hay alguna manera de llamar a una función Lua desde C/C++ sin ejecutar primero la secuencia de comandos completa?Llamar a la función Lua sin ejecutar el script
He intentado hacer esto:
//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);
pero me da esto:
PANIC: unprotected error in call to Lua API (attempt to call a nil value)
que sólo puedo llamar bar() cuando hago esto:
//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);
Pero me da esto:
hello
stackoverflow!!
estoy queriendo esto:
stackoverflow!
Este es mi script lua:
print("hello");
function bar()
print("stackoverflow!");
end
Ya que tienes que ejecutar el script para obtener el Lua VM para verla como Etan indica que tendrá que extraer a cabo ' function bar() 'a un archivo diferente y solo ejecuta ese archivo. – greatwolf