我有单例类,我想绑定它以供lua使用。我正在使用SLB(Simple Lua Binder)。我真的不知道该怎么做。我的所有想法都没有用。任何人吗?
void Logger::export_class_to_lua(SLB::Manager *m) {
SLB::Class< Logger, SLB::Instance::NoCopyNoDestroy >("Logger",m)
.set("getInstance",&Logger::getInstance)
.set("log",&Logger::log)
.set("info",&Logger::info)
.set("warning",&Logger::warning)
.set("error",&Logger::error)
.set("fatal",&Logger::fatal);
}
答案 0 :(得分:1)
使用您的代码执行:
void Logger::export_class_to_lua(SLB::Manager *m) {
SLB::Class< Logger, SLB::Instance::NoCopyNoDestroy >("Logger",m)
//.set("getInstance",&Logger::getInstance) // OMIT THIS
.set("log",&Logger::log)
.set("info",&Logger::info)
.set("warning",&Logger::warning)
.set("error",&Logger::error)
.set("fatal",&Logger::fatal);
// Next we set global variable within LUA to access the Singleton
SLB::setGlobal<Logger*>(&(*lua_State), getInstance(), "logger");
}
lua_State将是指向您创建的任何lua_State的指针。 “logger”是您在LUA中用于访问Singleton的对象/类/变量的名称。
所以例如;在LUA内你会这样做:
logger:log("Logging some information.")
logger:error("An error has occured.")
假设你的日志和错误函数采用const char *或其他东西。