gpt4 book ai didi

c++ - Lua C++ lib sethook : Gives error with hook function arg

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:42:14 35 4
gpt4 key购买 nike

谷歌搜索了一段时间,不知道发生了什么。所以我有一个名为 luaScript 的类,它处理 lua 脚本(令人惊讶!我知道。),它在当前状态下无法退出或暂停当前正在执行的脚本。

我发现了钩子(Hook),它允许我在每次发生事情时运行代码。还发现了 2009 年的一个很酷的 stackoverflow 问题,展示了如何使用它们。

复制代码,完成钩子(Hook),尝试编译,然后......什么都没有。只不过是一个错误,说我传递的函数( void hookRoutine(lua_State *L, lua_Debug *ar) )与 lua_Hook 类型不兼容(我发现总的 bs 因为lua_Hook 定义为 typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); 据我所知,这正是我给它的。 )

这是我复制的代码:lua_sethook(mL, hookRoutine, LUA_MASKCOUNT, 0);mL 是 lua 实例,hookRoutine 是钩子(Hook)。

到目前为止我尝试过的事情:

lua_Hook hookRoutine
lua_sethook(mL, &hookRoutine, LUA_MASKCOUNT, 0);
lua_sethook(mL, lua_Hook(hookRoutine), LUA_MASKCOUNT, 0);

我完全被这个问题难住了,已经谷歌搜索了几个小时,有人可以解释一下我犯了什么样的愚蠢错误吗?

最佳答案

我的猜测是 hookRoutine 是您类的常规成员函数。它必须是静态成员函数,因为 Lua 对 C++ 和 this 指针一无所知。您需要找到一些其他方法将 this 指针传递给您的钩子(Hook)函数,以备不时之需(可能通过将其存储在注册表中的 Lua 状态中)。

关于c++ - Lua C++ lib sethook : Gives error with hook function arg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47375439/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com