SHa
SHa

Reputation: 47

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.

Upvotes: 3

Views: 11227

Answers (2)

Pablo A. Costesich
Pablo A. Costesich

Reputation: 738

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.

Upvotes: 7

Doug Currie
Doug Currie

Reputation: 41220

You can register functions using luaL_register

Look at some examples and explanation in PiL

Upvotes: 3

Related Questions