【问题标题】:tolua++ Calling Lua function from C++ codetolua++ 从 C++ 代码调用 Lua 函数
【发布时间】:2013-07-28 09:32:55
【问题描述】:

我正在尝试使用 tolua++ 库将 Lua 脚本嵌入到我的 c++ 应用程序中。我很清楚,如何将 C++ 类绑定到 Lua,从 Lua 脚本创建它们并调用方法。但是,我无法真正了解如何从 C++ 调用 Lua 脚本函数(传递参数并获取返回值)。

你能说一下使用 tolua++ 的标准方法吗? tolua++ 是否涵盖了这一点,还是我必须使用 Lua C Api?

【问题讨论】:

    标签: c++ lua tolua++


    【解决方案1】:

    你应该使用CAPI,如下:

    在 lua 中:

    function showValue(strFirstName, strLastName)
         strName = strFirstName .. "." .. strLastName
         print(strName)
         return strName, "is", 18
    end
    

    在 C++ 中:

      lua_getglobal(L, "showValue");
      lua_pushstring(L, "William");
      lua_pushstring(L, "Hsueh");
    
      lua_pcall(L, 2, 3, 0);
    
      // get return values
      int nOld = lua_tonumber(L, -1);
      const char *pIs = lua_tostring(L, -2);
      const char *pName = lua_tostring(L, -3);
    

    您可以在以下位置查看整个示例:http://blog.deskangel.com/?p=459

    链接的帖子是中文的,但代码说明了一切。

    【讨论】:

    • 我不认为这是解决方案。
    • @einverne,那么,您的解决方案是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2014-09-01
    • 2013-05-26
    • 2013-02-19
    • 2015-12-30
    • 2022-01-04
    相关资源
    最近更新 更多