【问题标题】:How to embed lua in c++ via SWIG如何通过 SWIG 在 C++ 中嵌入 lua
【发布时间】:2010-10-08 01:33:04
【问题描述】:

目前我有一组用于我的类的 SWIG 包装器,它们都可以构建。我可以创建一个 lua 虚拟机并加载我的包装器,但那时我很困惑。谷歌搜索告诉我如何将 c++ 放入 lua in swig,但不告诉我如何将 lua 放入 c++。

我真正想做的就是设法实例化一个 lua 对象并将其传递给我的主游戏引擎对象指针,我可以从那里进行管理

【问题讨论】:

    标签: c++ lua swig


    【解决方案1】:

    看看 Programming in Lua 这本书,它有一个关于 Lua C API 的部分。

    要调用 Lua 函数,请使用 lua_pcall,它等效于 lua_call(有一个简短的示例),但它会捕获 Lua 运行时错误。

    您必须已经加载并运行过一次脚本(例如使用luaL_dofile),因为第一步是让脚本定义您要调用的函数。当它返回时,您可以使用lua_getglobal 访问脚本定义的函数。

    【讨论】:

    • 根据 SWIG + Lua 的个人经验,我会强烈建议编写自己的 C++->lua 调用。那里有一些库,我遇到了一个灾难案例,试图将 SWIG 与 Luabind 配对(SWIG 用于 Lua->C++,而 luabind 用于 C++->Lua) - 保持简单。绑定真的是最难的部分。但是,尝试抽象出对 Lua 的调用也会遇到更多问题。
    猜你喜欢
    • 2010-10-27
    • 2012-01-23
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多