I am embedding Lua into a C/C++ application. Is there any way to call a Lua function from C/C++ without executing the entire script first?
I've tried doing this:
//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);
But it gives me this:
PANIC: unprotected error in call to Lua API (attempt to call a nil value)
I can only call bar() when I do this:
//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);
But it gives me this:
hello
stackoverflow!!
I am wanting this:
stackoverflow!
This is my lua script:
print("hello");
function bar()
print("stackoverflow!");
end