我最近一直在学习 Luabind,打算集成到我们的软件中。我遇到了几个问题,我一直在查看 Luabind 的 Rasterbar Software 文档,但无法解决。基本上,我公开了一个将字符串和抽象基类作为参数的函数。首先,我不确定我是否以正确的方式进行此操作,或者在 lua 中可能需要一些特殊处理才能使其正常工作。无论如何,这是代码
class UIFactory
{
void addComponentFactory(std::string name, BaseFactory* factory);
}
BaseFactory 是一个抽象基类,它返回一个 UIComponent(按钮、文本等),我们派生了一个名为 TemplateFactory 的工厂,它基本上可以像这样实例化。
TemplateFactory<Button> buttonFactory = new TemplateFactory<Button>();
然后我们会像这样将这些传递给 c++ 中的 UIFactory ...
uiFactory.addComponentFactory("Buttons", buttonFactory);
在卢宾德...
module(state)
[
class_<UIFactory>("UIFactory")
.def(constructor<>())
.def("AddFactory", &UIFactory::addComponentFactory)
];
并在 lua...
uiFactory = UIFactory()
buttonFactory = ButtonFactory()
uiFactory:AddFactory("Button", buttonFactory)
最后一行没有执行,我检查了按钮工厂和 ui 工厂是否正在创建并且它们是。有什么我想念的吗?
非常感谢您的帮助。