1.生成dll

然后选择创建静态链接库:

创建的时候,记得勾选QtGui,并且修改pro文件,添加下面1句(这样就可以创建界面了):

修改staticlib.cpp:

#include "staticlib.h"
#include <QMessageBox> StaticLib::StaticLib()
{
QMessageBox::information(nullptr,"QMessageBox","My static Lib Test"); }

PS:如果要添加widget界面,可以对着dll项目右击新建,来创建widget界面.

最后点击锤子,生成DLL:

最终build-sharedLib-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug下生成如下:

而主程序需要用到的有:

.a静态库文件、h头文件

2.主程序调用dll

新建一个userStatic工程,来使用dll:

创建好后,进入工程目录,添加子目录:

然后将staticlib.h头文件拖到include中.将libstaticLib.a文件拖到lib中.

然后修改pro,导入头文件和dll文件.添加:

INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/lib -lstaticLib

-L指定库的目录,而-l是指定库的名字(需要去掉后缀名,如果是lib开头,则需要去掉前缀lib,所以libstaticLib.a就变为了staticLib)

如果有多个库文件,则在后面逐步添加,比如:

LIBS += -L F:/QT/QT/media/QTMedia/build-dll-Desktop_Qt_5_7_1_MinGW_32bit-Debug/debug/ -lsharedLib -lsharedLib2 -lsharedLib3 

然后在userShared的main中写入:

#include "widget.h"
#include <QApplication>
#include <sharedlib.h> //声明dll的头文件 int main(int argc, char *argv[])
{
QApplication a(argc, argv); SharedLib(); //打开QMessageBox对话框 return 0;
}

运行后,效果如下:

在此,感谢Tudou_Blog帮助,帮我解决了一些问题.

55.Qt-将界面程序封装成静态库的更多相关文章

  1. 54.Qt-将界面程序封装成动态库DLL

    1.生成dll 然后选择创建共享库: 创建好后,修改pro文件,改为下面两句(这样就可以创建界面了):  然后修改sharedlib.h: #ifndef SHAREDLIB_H #define SH ...

  2. 将QT开发的界面程序封装成DLL,在VC中成功调用

    最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...

  3. 将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)

    最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...

  4. 封装ios静态库碰到的一些问题(一)

    封装IOS动态库,碰到的第一个问题,就是资源文件的问题,如果将你的程序封装成为静态库,那么静态库中不会包含资源文件和xib文件,这个时候就需要自己封装bundle文件了,而笔者开发环境默认是xcode ...

  5. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明

    本文描述的是windows系统下,通过qtcreator在pro文件中添加动态库与静态库的方法: 1.添加动态库(直接添加动态库文件.dll,非子项目) 通过qtcreator创建动态库的方法就不在此 ...

  6. dlib编译成静态库及被其它程序调用

    一.git下载:https://github.com/davisking/dlib 官网:http://dlib.net/ 二.vs中编译成静态库 1.在vs2015中创建静态库工程(vs2015以上 ...

  7. C# 将 WebService 封装成动态库

    C# 将 WebService 封装成动态库 服务与服务之间的远程调用,经常会通过Web Service来实现,Web Service是支持跨语言调用的,可以是java调用c++或c#调用java等, ...

  8. python程序封装成exe流程

    在学习python的过程中,在IDE编写完成py项目,运行成功想要封装成exe,方便分享给不同的人即使别人没有安装python也可以使用. 封装的过程中遇到一些问题,记录一下,方便自己和他人查阅. 以 ...

  9. 【C++】将调用第三方库的代码封装成动态库供上层调用

    需求分析 Java应用中需要调用C++的程序,而这个C++的程序中需要引入一个第三方静态库.所以需要将该程序编译成一个动态库文件(.so)供Java调用. 步骤 使用CLion创建一个动态库的项目,会 ...

随机推荐

  1. linux常用命令及配置文件

    linux常用命令 基于centos 以我自己实际使用情况来说,从最常用的开始开始,大致如下: 1. 基本命令 cd ls ll(ls -l 别名 ) cat vi/vim touch echo mk ...

  2. 【Flutter 实战】各种各样形状的组件

    老孟导读:Flutter中很多组件都有一个叫做shape的属性,类型是ShapeBorder,比如Button类.Card等组件,shape表示控件的形状,系统已经为我们提供了很多形状,对于没有此属性 ...

  3. Activiti7 学习总结

    什么是工作流? 就是通过计算机对业务流程进行自动化处理,实现多个参与者按照预定义的流程去自动执行业务流程 什么是Activiti? Activiti是一个工作流引擎,开源的架构,基于BPMN2.0标准 ...

  4. 一句Delete..In.. 删除语句的优化

    实验环境: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit P ...

  5. i春秋公益赛之signin

    题目链接:https://buuoj.cn/challenges#gyctf_2020_signin 查看程序保护 只开了canary和NX保护,在IDA查看反编译出来的为代码时发现程序给了一个后门 ...

  6. WebSphere MQ常用命令及配置

    WebSphere MQ常用命令及配置 (2012-06-23 23:09:16) 标签: mq命令 杂谈 分类: MQ [导读]WebSphere MQ常用命令及配置 一,队列管理命令 1,创建队列 ...

  7. swift基本体验

    Swift初体验 1. 导入框架 2. 定义标识符: let/var 3. 语句结束时;可以省略 4. print() 5. let/var 6. 逻辑分支 7. 循环使用 // 1.Swift中如何 ...

  8. 刀哥之指纹识别biometrics

    指纹识别 - 生物识别 简介 iPhone 5S 开始支持 iOS 8.0 开放了 Touch ID 的接口 代码准备 - (void)touchesBegan:(NSSet *)touches wi ...

  9. Git+Gitlab+Ansible剧本实现一键部署动态网站(5)

    项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>.关于git,gitliab,ansible在我以 ...

  10. robotframework获取Token

    公司做接口自动化,但是其他接口调用都需要传入token,所以首要目标是把token读取出来. 需要清楚以下内容: 1.登录使用post请求 2.https协议,且登录后需手工验证SSL证书,默认处于不 ...