如何将Lua函数存储到C++;使用SLB(简单Lua活页夹)?
我需要使用库“Simple Lua Binder”存储Lua函数如何将Lua函数存储到C++;使用SLB(简单Lua活页夹)?,lua,Lua,我需要使用库“Simple Lua Binder”存储Lua函数 typedef?t语言功能; 福班 { 公众: void SetCallback(tluaf函数) { mCallback=f; } void ExecuteCallback() { f();//调用Lua函数 } 私人: tLualback函数; }; //管理器初始化 SLB::管理器scriptManager; //SetCallback注册到lua SLB::类(“Foo”和脚本管理器) .constructor() .s
typedef?t语言功能;
福班
{
公众:
void SetCallback(tluaf函数)
{
mCallback=f;
}
void ExecuteCallback()
{
f();//调用Lua函数
}
私人:
tLualback函数;
};
//管理器初始化
SLB::管理器scriptManager;
//SetCallback注册到lua
SLB::类(“Foo”和脚本管理器)
.constructor()
.set(“SetCallback”、&Foo::SetCallback)
.set(“ExecuteCallback”,&Foo::ExecuteCallback)
;
字符*luaCode=
“SLB。正在使用(SLB)\n”
“o=Foo()\n”
“o:SetCallback(函数()\n”
“打印('Callback executed')\n”
“结束\n”
“”\n“
“o:ExecuteCallback()\n”;
SLB::脚本(脚本管理器和脚本管理器);
脚本.doString(luaCode);
//结果是
>“已执行回调”
我不知道SLB库中是否有一个类型可以替换?(参见代码的第一行)
或者如果我不得不做不同的事情
typedef ? TLuaFunction;
class Foo
{
public:
void SetCallback( TLuaFunction f )
{
mCallback = f;
}
void ExecuteCallback()
{
f(); // Calls Lua function
}
private:
TLuaFunction mCallback;
};
// Manager initialization
SLB::Manager scriptManager;
// SetCallback registration into lua
SLB::Class<Foo>( "Foo", &scriptManager )
.constructor()
.set( "SetCallback", &Foo::SetCallback )
.set( "ExecuteCallback", &Foo::ExecuteCallback )
;
char* luaCode =
"SLB.using( SLB )\n"
"o = Foo()\n"
"o:SetCallback( function() \n"
" print( 'Callback executed' ) \n"
" end \n"
") \n"
"o:ExecuteCallback() \n";
SLB::Script script( &scriptManager );
script.doString( luaCode );
// The result is
> "Callback executed"