C++ – How to embed lua in c++ via SWIG


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

Best Solution

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.