Calling Lua function from C++ Posted on July 15th
Calling Lua function from c++ is very simple. Value passing between c++ and Lua goes through stack, Lua C API provides a convenience ways for you to call Lua function from C. To call Lua function, you need to specify:
1. Function Name.
2. Parameters of function call.
3. Return values expected ( Lua function support multiple results reture)
Let say my lua function name call f in last.lua, takes 2 parameters.
-- last.lua
function f (x, y)
return (x^2 * math.sin(y))/(1 - x)
end
I perform function call from c++ like this:
Compile it with g++ like this:
g++ -o last{,.cc} -llua -ldl
The results:
Result: -12.158958
Brief explanation of the C++ codes above:
First, I trigger lua_getglobal to get the function name, then I push 2 parameters to stack. I make lua_pcall by telling Lua I have 2 params and expect 1 value return. Upon success, I retrieve the return value from the top of the stack.

Your code formatting is lost in the RSS feed…
Commented Ryan on July 15th, 2008.Great tutorials! Thanks !!!
Commented Jon on July 21st, 2008.I get the following (correct) program output:
Result: 8.909030
Commented bla on May 11th, 2009.