QT 关于如何生成包含多个自定义类的DLL以及如果调用

新年新气象,新年第一篇。

近期想把几个常用的函数的生成dll,这样方便更新的时候,只更新dll就可以了,否则又是发布又是打包比较麻烦。网上有很多例子,不过大部分是简单调用个函数,我遇到的问题是函数中有多个自定义类,下面用两种方法来解决这一问题。

一、首先说下常规的如何生成dll

1、新建项目,按下图红色标记选择

 2、自定义名称和创建路径

 

 3、默认下一步

4、默认下一步

 

 5、软件根据自定义的名称,自动创建了类名、头文件、源文件,点击下一步

 

 6、创建完成,生成如下界面。

 除了正常的.h和.cpp文件外,多了一个_global.h文件

7、在scdll.h文件中,自定义函数sum

#ifndef SCDLL_H
#define SCDLL_H

#include "scdll_global.h"

class SCDLLSHARED_EXPORT SCDll
{

public:
    SCDll();
    int sum(int a,int b);
};

 8、在scdll.cpp文件中,写sum函数

#include "scdll.h"


SCDll::SCDll()
{
}
int SCDll::sum(int a,int b)
{
   retrun a+b;
}

9、点击小锤子进行构建生成dll文件和lib文件

二、调用生成dll

1、新建应用程序文件SYDll

 

2、将上面生成dll工程文件中的scdll.h、scdll_global.h、SCDll.dll三个文件拷贝到SYDll工程文件下

 3、在SYDll工程中添加scdll.h文件和scdll_global.h文件

4、在SCDll工程pro中加dll文件

 

5、在SCDll工程widget.h中添加scdll.h头文件

 6、在SCDll工程widget.cpp中调用SCDll.dll的sum函数

 

三、如果有自己定义的类

1、一种方法是将自定义类的头文件定义到scdll.h中,这样调用的时候和原先一样2

 

2、单独定义类的头文件,调用dll的时候,需要将自定义类的头文件也添加的工程文件中

自定义的SANJIAOXING类

 

调用的时候,除了scdll.h、scdll_global.h外,还需要sanjiaoxing.h文件

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值