检查函数是在C还是Lua中实现的。

我创建了一张表,并使用 lua_pushcfunction 为它分配了一个名为 mytable:myfunction() 的方法。在不同的(回调)上下文中,myfunction 在 Lua 脚本中将被覆盖是必须的。出于某些原因,如果我从 C 主机调用 myfunction,我需要知道 myfunction 是否仍是 c 函数或已被脚本替换。

有没有办法(从 C)测试 C 方法是否仍连接或被一些 Lua 代码替换了?

点赞
用户107090
用户107090

是的,你可以使用lua_iscfunction

2013-08-12 11:21:42
用户234175
用户234175

另一种可能性是使用 **lua_tocfunction**。这使您可以检查返回的 C 函数是否是您期望的。

lua_tocfunction

2013-08-12 20:21:22