例如我有这个:
static int callFunction(lua_State* L)
{
int p = lua_gettop(L);
if (p == 1 && lua_isfunction(L, -1)) {
/*
* now i need something like "get the function thats in the first parametre
*/
}
return 0;
}
现在我需要在这个C ++代码中得到函数的第一个参数,sry因为不清楚,我很难解释。
答案 0 :(得分:1)
如果需要调用该函数,可以使用lua_call。但是Lua不允许你使用任何有用的指向Lua函数的指针。如果要在Lua中存储函数,则必须使用Lua注册表来存储它。
答案 1 :(得分:0)
我猜你可能想要查看lua_tocfunction()函数。
答案 2 :(得分:0)
如果你想在C ++中存储Lua函数的“指针”,你可以只存储Lua函数的/ name /然后按照DeadMG的说法进行操作并用lua_call
调用它,如下所示: http://pgl.yoyo.org/luai/i/lua_call。
如果您对已经存在的代码感到困惑,那就是一个棘手的问题;我不确定你能从堆栈中获取Lua函数的名称。换句话说,您可能需要将代码修改为您发布的代码一级。