Я встраиваю Lua в приложение C / C ++. Есть ли способ вызвать функцию Lua из C / C ++, не выполняя сначала весь сценарий?
Я пытался сделать это:
//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);
Но это дает мне это:
PANIC: unprotected error in call to Lua API (attempt to call a nil value)
Я могу вызывать bar () только тогда, когда я делаю это:
//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);
Но это дает мне это:
hello
stackoverflow!!
Я хочу это:
stackoverflow!
Это мой сценарий Луа:
print("hello");
function bar()
print("stackoverflow!");
end