LuaScript Xojo Plugin |

# LuaScript.RegisterFunction Method

Registers a Xojo or Real Studio function that can be called from within Lua.

RegisterFunction(
name as String,
fuction as Ptr)

#### Parameters

name
  The name of the function to be registered as Lua should know it by. This does not have to be the same as its REALbasic name.
fuction
  The address of the REALbasic function.

#### Remarks

Note that the signature of the function always needs to be:
Function FunctionName(lua as Ptr) As Integer
Where function name can be anything you want, but the parameter must always be ua as Ptr and the return value a integer.
The REALbasic function must reside in a global module, not a class.
Registering a REALbasic function to Lua:

ls.RegisterFunction("calculatesomething", AddressOf REALbasicFunctionsForLua.CalculateSomething)
The REALbasic function:
Function CalculateSomething(lua as Ptr) As Integer
Dim context as LuaScriptContext
Dim result as Double
context = new LuaScriptContext(lua)
// Lua does not know how many parameters your function has so it will push all its got to the stack,
// your responsible for making sure your get the correct amount of them
if context.ParameterCount <> 2 then
context.SetError("CalculateSomething expects two parameters")
return 0
end if
// We fetch the two parameters and then we multiply them
result = context.GetDouble(1,false) * context.GetDouble(2,false)
// To return the calculated value we push it onto the stack
context.Push(result)
// We always return 1 here to tell Lua that all was good
return 1
End Function
Note that this REALbasic function accepted two double parameters and returned one double parameter.
So lua would see the function as: x = calculatesomething(a,b)

#### See Also

LuaScript Class