【发布时间】:2011-05-27 21:37:46
【问题描述】:
注意,我已经阅读并应用了答案:Calling C++ member function from Luabind causes "No matching overload found",但这并没有解决我的问题。
我有一个简单的类,我通过 luabind 向 LUA 公开
这里是绑定代码:
void LogManager::luaBindImpl() const
{
using namespace luabind;
lua_State* state(Supervisor::getSingleton().getManager<LuaManager>()->state());
// LogManager
module(state)
[
class_<LogManager>("LogManager")
.enum_("LogType")
[
value("Info", 1)
,value("Warning", 2)
,value("Critical", 3)
,value("Debug", 4)
]
.def("log", &LogManager::log)
.def("registerSource", &LogManager::registerSource)
];
// Add to globals
globals(state)["LogManager"] = this;
}; // eo luaBindImpl
这是我的 LUA:
LogManager.registerSource("lol");
但我得到了标题中提到的错误(这直接来自我的日志文件):
00:00:00:0520- lua:Exception - No matching overload found, candidates:
void registerSource(LogManager&,std::string const&)
我一直为此烦恼不已,看不出我做错了什么。任何人都可以解释一下吗?! :)
【问题讨论】: