当前位置: 代码迷 >> QT开发 >> QT插件跟普通动态库的差别?
  详细解决方案

QT插件跟普通动态库的差别?

热度:35   发布时间:2016-04-25 03:15:36.0
QT插件和普通动态库的差别?!
我在网上查了半天,没有结果,望熟悉QT的各位帮助。
在建立QT项目时,可以建立QT plugin,也可以建立QT liblibrary.
而插件其实就是一个动态链接库,那么这两种工程有什么区别?
我像VC中那样创建个动态链接库工程,生成dll、lib、.h,和这个插件有何区别?
为什么要使用插件呢,优势呢?我看不出和生成一个普通动态链接库的区别....而QT插件还必须遵循一些QT的硬性规定。

另:QT插件可以被C#调用么?我知道普通的C++DLL可以通过PInvoke由C#调用。QT插件貌似不能够被调用吧?
------解决方案--------------------
有这些疑问,说明你没有用插件的需求而已。

另外,你这儿提到的“插件” 是指 QtCreator 插件吧?
------解决方案--------------------
Qt插件本身是动态库,除此之外,它定义了一组专用的接口,从动态库中导出,供 Qt 的插件管理体系发现和调用。当你选择 Qt 插件项目模板时, Qt Creator 会自动为你插入专用接口相关的模板代码。
假如你从一个白板做起,实现一个动态库,要想客户方调用,还是需要导出N多的函数。而 Qt 这种,只是它约定了你需要导出什么函数、什么类、怎样查询你导出的接口,它定义了一套规范而已。
------解决方案--------------------
我也来补充一句,Qt的插件 在Linux下 是不用export路径 的。更NB啊。
  相关解决方案