4

Currently I have a set of SWIG wrappers for my classes and it all builds. I can create a lua virtual machine and load my wrappers, but at that point I'm flummoxed. Googling tells me how to shove put c++ in lua in swig, but not how to put lua in c++.

Really all I want to do is manage to instantiate a lua object and pass it my main game engine object pointer, from there I can manage

Tom J Nowell
  • 9,588
  • 17
  • 63
  • 91

1 Answers1

3

Take a look at the Programming in Lua book, it has a section on the Lua C API.

For calling Lua functions use lua_pcall, which is equivalent to lua_call (that has a short example) except it will catch Lua runtime errors.

You must have already loaded and run the script once (using eg. luaL_dofile) since the first step is for the script to define the functions for you to call. When it returns, you can access the script-defined functions with lua_getglobal.

MattJ
  • 7,924
  • 1
  • 28
  • 33
  • 2
    From personal experience with SWIG + Lua, I would *highly recommend* writing your own C++->lua calls. There are a few libraries out there and I had a disaster case trying to pair SWIG with Luabind (SWIG for Lua->C++, and luabind for C++->Lua) - just keep it simple. Binding is really the hard part. However, you'll run into more issues by trying to abstract away calls to Lua as well. – Qix - MONICA WAS MISTREATED Jan 24 '13 at 09:26