新年新气象,新年第一篇。
近期想把几个常用的函数的生成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文件