2

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

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

4

1 回答 1

0

您应该使用 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

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

于 2013-09-05T02:37:18.593 回答