在基于插件的应用程序中,核心/可执行文件有几个纯插件(dll / so)应该实现的纯虚拟接口。此外,还有接口的标准实现,插件应该可以访问。
我是否需要导出纯虚拟接口?我的意思是它们只包含库文件在编译时包含的头文件。所以我不应该在运行时需要符号,我应该吗?
如何将类从主应用程序导出到插件?这有意义吗?这种情况的最佳做法是什么?
这意味着这些符号应该在库中未定义。我如何实现这一目标?
答案 0 :(得分:0)
纯虚拟接口将包含一个虚拟析构函数,它将引导编译器“创建”v-table。
通常最好只在一个编译单元中创建此v表,如果要在类上使用运行时类型信息,有时这是必不可少的。
在插件情况下,您可能希望“验证”该类实现了“接口”基类。
主应用程序可以挂钩到“模型”,允许插件添加一些自己的插件,如果你以一种允许以多种方式添加它们的方式编写它。