最近在研究插件架构,想了解Qt的Plugin插件除了有自己一套插件管理器之外,它的安全机制又是什么,结果发现我对Qt 的Plugin 和DLL 区别是什么还没搞清楚,想请了解这块的给予解答一下。
Qt插件本身是动态库,除此之外,它定义了一组专用的接口,从动态库中导出,供 Qt 的插件管理体系发现和调用。当你选择 Qt 插件项目模板时, Qt Creator 会自动为你插入专用接口相关的模板代码。
假如你从一个白板做起,实现一个动态库,要想客户方调用,还是需要导出N多的函数。而 Qt 这种,只是它约定了你需要导出什么函数、什么类、怎样查询你导出的接口,它定义了一套规范而已。