5

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.

SHa
  • 51
  • 1
  • 2

3 Answers3

7

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.

3

You can register functions using luaL_register

Look at some examples and explanation in PiL

Doug Currie
  • 40,708
  • 1
  • 95
  • 119
2

My answer here includes a nice, short example about making a very simple game using C and Lua together. In my biased opinion, it's a great starting point.

Community
  • 1
  • 1
Mark Rushakoff
  • 249,864
  • 45
  • 407
  • 398