C++将函数绑定到lua时出现错误。
2013-6-13 22:24:38
收藏:0
阅读:122
评论:1
我认为我找到了答案,很快会带着结果回来。
我遇到了这个错误,不知道该怎么解决,同时不希望将方法设置为静态的。如果它们是静态的,我就不会得到这个错误,但那样我就无法使用任何非静态的变量或函数。还有,在你说int和lua_CFunction可能是不同类型之前,它们不是。这是lua_CFunction的定义方式:
typedef int (*lua_CFunction) (lua_State *L);
*
1 IntelliSense:类型为“int(LuckyIrc ::*)(lua_State * l)” 的参数与类型为“lua_CFunction”的参数不兼容,f:\ Programming \ Visual Studio \ C ++ \ IrcBot \ IrcBot \ LuckyIrc.h 129 4 IrcBot
代码:
类 MyClass {
//other stuff
private:
//other stuff
int Lua_SendMessage(lua_State *l);
int Lua_SendRaw(lua_State *l);
int Lua_SendAction(lua_State *l);
int Lua_SendNotice(lua_State *l);
int Lua_Quit(lua_State *l);
int Lua_Part(lua_State *l);
int Lua_SendNick(lua_State *l);
int Lua_Kick(lua_State *l);
int Lua_Join(lua_State *l);
int Lua_Connect(lua_State *l);
void SetUpLua()
{
LuaState = luaL_newstate();
luaL_openlibs(LuaState);
/*错误发生在这里*/lua_register(LuaState, "SendMessage", Lua_SendMessage);
/*还有这里*/lua_register(LuaState, "SendRaw", Lua_SendRaw);
/*还有这里*/lua_register(LuaState, "Quit", Lua_Quit);
/*还有这里*/llua_register(LuaState, "Part", Lua_Part);
/*还有这里*/lua_register(LuaState, "SendNotice", Lua_SendNotice);
/*还有这里*/lua_register(LuaState, "SendAction", Lua_SendAction);
/*还有这里*/llua_register(LuaState, "SetNick", Lua_SendNick);
/*还有这里*/llua_register(LuaState, "Join", Lua_Join);
/*还有这里*/llua_register(LuaState, "Kick", Lua_Kick);
/*还有这里*/llua_register(LuaState, "Connect", Lua_Connect);
}
}
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
lua_register只直接支持自由函数(或静态方法,除了可见性外相同)。因此,你需要找另一种方法传递对象指针。如果你只需要一个单例(即希望在脚本函数的所有调用之间共享相同的状态),最简单的方法是使用一个私有静态变量(实例指针)。此外,你可以尝试使用 luabind 库,以便更轻松地绑定自定义函数和类。