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

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

您能否告诉我使用tolua++进行此操作的标准方式?是否可以使用tolua++覆盖这一点,还是我必须使用Lua C Api?

点赞
用户340917
用户340917

你应该使用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);

  // 获取返回值
  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-05 02:37:18