有时候在做项目的时候我们需要将自己编写的类封装起来,Qt提供了一个很好的封装途径。下面将详细讲述一个简单的库的制作过程,最后再创建另外一个工程,在这个工程里面对封装的库进行调用,从而完成一个dll库从创建到调用的过程。谢谢大家指正!
第一步:先制作一个库文件。
1、首先新建一个工程,工程选项如下,我们要创建一个基于qmake的C++共享库。
![](https://i-blog.csdnimg.cn/blog_migrate/dcf823b25c76cbee2c8a97d8171a2656.png)
2、选择库的类型和存放路径。
![](https://i-blog.csdnimg.cn/blog_migrate/2ba1357968cf4a8ae54c8a50145dca15.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8a4b64f33617d0ed94741cca606c9cf0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/040d7f30e667cabf3f476d1c09694660.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9ebc22a1e7278264dccbe1eb18dfbdee.png)
![](https://i-blog.csdnimg.cn/blog_migrate/878955be1fe287afa7f3726c09e6a41b.png)
3、在“hellolib.cpp”中添加如下的代码,让库函数输出一行文字。
![](https://i-blog.csdnimg.cn/blog_migrate/4b50a60a91d080169a935091d4ff4a76.png)
4、点击左下角的编译,如果没有错误就生成了对应的库文件。
![](https://i-blog.csdnimg.cn/blog_migrate/7fac6a9838e22553b2daa55b4bf47799.png)
5、生成的库文件在对应的编译文件夹里面,如下图所示,本工程生成的库在这个文件夹下,
![](https://i-blog.csdnimg.cn/blog_migrate/4f6191a8a518a79c273d037a00718326.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e0797500089c6a2e97872e8c713fab26.png)
源文件网盘路径:
http://pan.baidu.com/s/1kTFmord
第二步,调用库文件,测试生成的库文件能否正常使用。
1、同样新建一个新的工程,这次选择“Qt C++ Project”下的“Qt Gui Application”。
![](https://i-blog.csdnimg.cn/blog_migrate/09a2d94163da089276e4bddfef4439ec.png)
2、输入工程名称,选择保存路径。
![](https://i-blog.csdnimg.cn/blog_migrate/e32e348d7e8bf4980cc9e5b0dbdbc552.png)
3、选择简单的一个界面。
![](https://i-blog.csdnimg.cn/blog_migrate/ad27095f590a6fa77e3ea351138a4a40.png)
![](https://i-blog.csdnimg.cn/blog_migrate/224d91406169a56b9e1e2082e07c13b9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/765cf7bc22ec84087f30525eb370c9dc.png)
4、将两个文件放入建立的工程文件下。
![](https://i-blog.csdnimg.cn/blog_migrate/2528fffcc19f604ce74b9e240f5bf04f.png)
5、在第一步创建库工程的文件夹下找到两个头文件和一个生成的库文件,将其分别COPY到“include”和“lib”文件夹下。
![](https://i-blog.csdnimg.cn/blog_migrate/e423cb03ae1d296c6ad06c6e6a1cf4b2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ae237de446d4bb63d88c449119caf35b.png)
6、在当前的工程文件下添加对应的头文件:
![](https://i-blog.csdnimg.cn/blog_migrate/45788e70fd8b77243975d3a81233299a.png)
7、在当前工程中添加库连接。
![](https://i-blog.csdnimg.cn/blog_migrate/8c71a61d0fedf70897657ca357f7c761.png)
8、然后在UI里面添加一个“PushButton”,将其命名为“调用库函数”。
![](https://i-blog.csdnimg.cn/blog_migrate/61632914d3b858c9ad9a6e887e6ece66.png)
9、右键上图中的“PushButton”选择“Go to slot...”,选择单击信号
![](https://i-blog.csdnimg.cn/blog_migrate/2bcfb611c0c4fb85ce22b9f6186a2f40.png)
10、在"mywidget.cpp"文件中调用库函数,并且添加相应的头文件,添加头文件是注意路径,我们刚才将库文件添加到了“include”文件夹下,所以这里需要包含路径信息:
![](https://i-blog.csdnimg.cn/blog_migrate/6da45ee28e25b31e19e5e3cfcfc13b71.png)
11、编译,如果没有错误提示,就可以直接点击运行。
![](https://i-blog.csdnimg.cn/blog_migrate/2b36861e54bb0f98b4de1195e54d9a9a.png)
12、测试对库函数的调用。如下图所示点击“调用库函数”按钮,就可以输出我们在库里面封装好的函数了。怎么样神奇吧!
![](https://i-blog.csdnimg.cn/blog_migrate/7a3fca07d9032cf140db5e11b447d079.png)
源文件网盘链接:
http://pan.baidu.com/s/1dDEc5k1