如何通过SWIG将Lua嵌入C++?

4

目前我有一组SWIG包装器,所有内容都已构建完成。我可以创建一个lua虚拟机并加载我的包装器,但此时我感到困惑。通过谷歌搜索,我了解到如何将C++放入Lua中,但不知道如何将Lua放入C++中。

实际上,我只想实例化一个lua对象并将其指针传递给我的主游戏引擎对象,从那里我可以进行管理。

1个回答

3
请查看《Programming in Lua》一书,其中有关于Lua C API的章节。
要调用Lua函数,请使用lua_pcall,它等同于lua_call(该函数有一个简短的示例),但它会捕获Lua运行时错误。
您必须已经加载并运行了脚本(例如使用luaL_dofile),因为第一步是让脚本定义函数以便您调用。当它返回时,您可以使用lua_getglobal访问脚本定义的函数。

2
从我个人使用SWIG + Lua的经验来看,我会强烈建议编写自己的C++->lua调用。虽然有一些库可用,但我曾经尝试过将SWIG与Luabind配对(Lua->C++的SWIG和C++->Lua的luabind),结果是灾难性的 - 保持简单。绑定确实是最困难的部分。但是,如果尝试抽象化对Lua的调用,您将遇到更多问题。 - Qix - MONICA WAS MISTREATED

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接