1

我一直在尝试更改 Lua 闭包的地址,然后使用包装函数,该函数需要将函数的上值传递给它。唯一的问题是当我更改函数的地址并尝试移动上值时,它会失败,因为闭包没有为任何上值分配空间。所以问题是,有没有办法为已经创建的闭包的上值分配空间?在编码中,这看起来像

lua_pushnil(L);//For example
lua_pushcclosure(L, Function, 0);
lua_addupvalue(L, -1, 1);
lua_pushvalue(L, -2);
lua_setupvalue(L, -2, 1);

这就是我想要的那种方法,我希望这些论点是不言自明的。如果有人有任何想法,请告诉我。我一直在思考这个问题。

4

0 回答 0