Qt 使用共享库

创建动态库工程

选择模块需要注意的是如果想要将GUI封装成一个动态库,那么必须要要将QtWidgets选中,不然是不能生成ui_xxx.h头文件的

接下来直接都下一步直到创建好就好

创建好之后会有两个头文件,一个.cpp文件

Global.h头文件中主要是 根据创建的类名字生成的导出库所需的一些关键字的宏定义

Q_DECL_EXPORT 导出库所用的Qt的宏定义

#    define Q_DECL_EXPORT     __declspec(dllexport)

Q_DECL_IMPORT是导入库所用的Qt宏

#    define Q_DECL_IMPORT     __declspec(dllimport)

 

如果不需要封装GUI的动态库,那么就可以直接写逻辑了,如果需要对GUI封装成DLL,那么就需要添加一个GUI界面

添加完一个相同的GUI类之后在qrc文件中可能会有重复的头文件,所有需要手动删除即可

还需要在.h文件中修改两处

然后就可以构建,就会在生成文件夹中有一个和工程名一样的.dll文件了

那么要怎么使用该动态库呢?

 

第一种使用隐式方式使用dll

将.h文件以及global.h文件添加入使用动态库工程,将动态库放在.exe运行文件debug文件夹下

第二种显式使用库中的全局函数

需要说明的是,使用QtCreate封装的GUI库,只能在QtCreate中使用,如果在VS创建的Qt工程中使用是不行的(反正我没找到方法),会说moc中的静态函数不能使用_dllexport导出,会出现有几个问题

如果想要在VS中使用动态库类GUI类对象,只能在全局函数中创建出GUI对象,然后返回给外界使用就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值