VS中创建和使用c++的dll动态库(转)

新建一个作为动态库的calc项目,包含如下.cpp和.h文件
在这里插入图片描述
接口ICalc.h如下:

#pragma once

#define CALC_API _declspec(dllexport)

class CALC_API ICalc
{
public:
	//用于创建接口实例
	static ICalc* CreateInterface();

public:
	//用于求和计算,a,b作为输入
	virtual int sum(const int a,const int b) = 0;
}; 

calc.h作为ICalc接口的派生类,派生ICalc接口定义的计算函数在calc.cpp中实现
calc.h如下:

#include "ICalc.h"

class calc : public ICalc
{
public:
	//派生ICalc接口中的sum函数
	virtual int sum(const int a,const int b);
};

calc.cpp如下:

#include <stdio.h>
#include "calc.h"

//实现创建一个calc实例
ICalc* ICalc::CreateInterface()
{
	return new calc();
}

//计算求和a+b
int calc::sum(const int a,const int b)
{
	return a+b;
}

计算的dll动态库实现后,编译生成dll文件和lib文件
然后新建一个myCalc项目,myCalc项目中需要使用该calc.dll动态库
在这里插入图片描述
操作步骤:
1.新建myCalc项目后,添加一个main.cpp,然后编译

2.在myCalc项目路径下新建一个include文件夹存放接口ICalc.h文件
在这里插入图片描述
3.在myCalc项目路径下新建一个lib文件夹存放calc项目中编译生成的calc.lib文件
在这里插入图片描述
4.将calc项目编译生成的calc.dll复制到myCalc项目的输出目录下
calc生成的calc.dll的路径参考下图的输出目录,具体路径看个人怎么配
在这里插入图片描述
同理,myCalc的输出目录也是在myCalc项目中的这个地方,具体路径看个人怎么配
5.vs中配置myCalc项目如下
(1)c/c++常规,附加包含目录,添加ICalc.h文件的在myCalc项目的存放路径
在这里插入图片描述
(2)链接器常规,附加库目录,将calc.lib在myCalc项目的存放路径添加上
在这里插入图片描述
main.cpp如下:

#include <stdio.h>
#include "ICalc.h"

int main()
{

	ICalc *myCalc = ICalc::CreateInterface();

	printf("a+b=%d",myCalc->sum(1,2));


	getchar();
	return 0;

}

https://blog.csdn.net/qq_41738624/article/details/122126863

posted @ 2022-05-12 10:21  萧海~  阅读(295)  评论(0编辑  收藏  举报