我刚刚让自己陷入了与 Luabind 的奇怪问题。我想从 Lua 继承 C++ 类,但是 Luabind 文档中描述的方式不起作用。
function MyGame.__init()
Game.__init(self)
end
这段代码只是使应用程序崩溃,因为self
似乎未定义(nil
如果打印出来则返回)。
我正在使用文档中描述的包装器结构。
struct GameWrapper: Game, luabind::wrap_base{
GameWrapper()
: Game()
{}
virtual int Loop(void){
call<int>("Loop");
}
static int default_Loop(Game* ptr){
return ptr->Game::Loop();
}
static void Lua(lua_State *lua){
luabind::module(lua)
[
luabind::class_<Game, GameWrapper>("Game")
.def(luabind::constructor<>())
.def("Loop", &Game::Loop, &GameWrapper::default_Loop)
];
}
};
有什么想法我可能做错了吗?