试图将函数绑定到lua的c++错误
C++ error trying to bind function to lua
我想我找到了答案,很快就会返回结果
我得到这个错误,不知道如何修复它,而没有方法是静态的。如果它们是静态的,我不会得到错误,但我不能使用任何非静态变量或函数。在你说int和lua_CFunction可能是不同的类型之前,它们不是。下面是如何定义lua_CFunction的
typedef int (*lua_CFunction) (lua_State *L);
* 1 IntelliSense: argument of type "int (LuckyIrc::*)(lua_State *l)" is incompatible with parameter of type "lua_CFunction" f:ProgrammingVisual StudioC++IrcBotIrcBotLuckyIrc.h 129 4 IrcBot
代码:class 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);
/*Error happens here*/lua_register(LuaState, "SendMessage", Lua_SendMessage);
/*And here*/lua_register(LuaState, "SendRaw", Lua_SendRaw);
/*And here*/lua_register(LuaState, "Quit", Lua_Quit);
/*And here*/llua_register(LuaState, "Part", Lua_Part);
/*And here*/lua_register(LuaState, "SendNotice", Lua_SendNotice);
/*And here*/lua_register(LuaState, "SendAction", Lua_SendAction);
/*And here*/llua_register(LuaState, "SetNick", Lua_SendNick);
/*And here*/llua_register(LuaState, "Join", Lua_Join);
/*And here*/llua_register(LuaState, "Kick", Lua_Kick);
/*And here*/llua_register(LuaState, "Connect", Lua_Connect);
}
}
lua_register
只直接支持自由函数(或静态方法,除了可见性之外,它们是相同的)。因此,你需要找到另一种方式来传递对象指针。如果你只需要一个单例(即你想要共享相同的状态为所有调用你的脚本函数),最简单的方法将是一个私有静态变量(实例指针)。
此外,您可以尝试使用luabind库来更轻松地绑定自定义函数和类。
相关文章:
- C++Lua用户数据扰乱了Mathfu浮点值
- 使用 LuaBridge 或 Lua 将对象传递给 Lua 函数C++
- 将 Lua 函数块转换为 C 字符串
- 我可以从 lua 5.0.2 加载用 c++ 编写的 lua 5.3.5 dll 吗?
- 使用 lua 协程 API 和lua_close时出现分段错误
- 使用 C++ 自动 Lua 绑定
- 调用 lua 函数的地址为 C/C++?
- lua 5.0.2 模块和 5.3.5 有什么区别?
- 如何将 Lua 添加到C++项目
- 使用 Lua 中的C++库对象
- 如何在C++中将用户数据从一个 Lua 块传递到另一个块
- 如何使用重新定义的打印函数打印Lua表?
- Lua table in C++ dll
- 在运行时环境中使用 C++ w/ Lua
- 将shared_ptr传递给Lua
- luaL_len is missing in Lua 5.1
- 将向量传递给<struct> Lua 表
- 将 Lua 与 C++ DLL 结合使用
- Lua C API - 从C++分配和使用类的对象成员
- C++中最接近 Lua 表操作的东西是什么?