Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How would I make a C-function that I can call from Lua?

I would like to know how to make a C-function and be able to tell Lua about it, then call it from Lua. I have all the Lua Libraries installed on my Mac OSX 10.4 computer.

like image 379
SHa Avatar asked Dec 22 '22 21:12

SHa


1 Answers

There's an excellent example of Lua-C integration here and here.

If you just need to export a function into the global namespace, then:

  1. Declare the function (let's call it f) with signature lua_CFunction.
  2. Call lua_register(L, "myfunc", f), with L being the Lua state, and function = f.
  3. Run the lua code. Then f will be available in the global namespace as myfunc.

If you're going to use the stock interpreter then you might want to make a library. This guy wrote an article for Lua Programming Gems that explains how to do it. The sources are available online.

like image 67
Pablo A. Costesich Avatar answered Jan 11 '23 23:01

Pablo A. Costesich