从C++代码中调用函数。

例如,我需要这样做:

static int callFunction(lua_State* L)
{
 int p = lua_gettop(L);
 if (p == 1 && lua_isfunction(L, -1)) {
  /*
   * 现在我需要像“获取在第一个参数中的函数”这样的东西
   */
 }
 return 0;
}

现在我需要在这个 C++ 代码中获取第一个参数中的函数,对不起,我不太清楚,我不太善于解释。

原文链接 https://stackoverflow.com/questions/4159944

点赞
stackoverflow用户439599
stackoverflow用户439599

我猜你可能想查看lua_tocfunction()函数。

2010-11-11 22:45:04
stackoverflow用户298661
stackoverflow用户298661

如果您需要调用该函数,您可以使用 lua_call。然而,Lua 不允许您获取任何有用的指向 Lua 函数的指针。如果您想在 Lua 中存储一个函数,那么您将需要使用 Lua 注册表来存储它。

2010-11-12 00:06:19
stackoverflow用户4323
stackoverflow用户4323

如果你想在 C++ 中存储一个指向 Lua 函数的"指针",你可以存储 Lua 函数的/名称/,然后像 DeadMG 所说的那样使用 lua_call 调用它,如这里的例子:http://pgl.yoyo.org/luai/i/lua_call

如果你被困在你已有的代码中,这是一个棘手的问题;我不确定你能否从你已有的栈中获取 Lua 函数的名称。换句话说,你可能需要修改你发布的代码的上层代码。

2010-11-28 14:08:56