tolua++从C++代码中调用Lua函数

tolua++ Calling Lua function from C++ code

本文关键字:调用 Lua 函数 代码 C++ tolua++      更新时间:2023-10-16

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

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

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

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