私は最近、ソフトウェアに統合することを目的として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);
luabindで..。
module(state)
[
class_<UIFactory>("UIFactory")
.def(constructor<>())
.def("AddFactory", &UIFactory::addComponentFactory)
];
そしてluaで...
uiFactory = UIFactory()
buttonFactory = ButtonFactory()
uiFactory:AddFactory("Button", buttonFactory)
その最後の行は実行されません。ボタンファクトリとuiファクトリが作成されていることを確認しました。足りないものはありますか?
ヘルプは大歓迎です。