新建一个作为动态库的calc项目,包含如下.cpp和.h文件

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


接口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动态库

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


操作步骤:

1.新建myCalc项目后,添加一个main.cpp,然后编译2.在myCalc项目路径下新建一个include文件夹存放接口ICalc.h文件

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


3.在myCalc项目路径下新建一个lib文件夹存放calc项目中编译生成的calc.lib文件

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


4.将calc项目编译生成的calc.dll复制到myCalc项目的输出目录下

calc生成的calc.dll的路径参考下图的输出目录,具体路径看个人怎么配

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


同理,myCalc的输出目录也是在myCalc项目中的这个地方,具体路径看个人怎么配

5.vs中配置myCalc项目如下

(1)c/c++常规,附加包含目录,添加ICalc.h文件的在myCalc项目的存放路径

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


(2)链接器常规,附加库目录,将calc.lib在myCalc项目的存放路径添加上

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


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;

}