《c++dll篇》VS2015生成dll及调用
VS2015生成dll及调用
原文链接:https://blog.csdn.net/qq_20792765/article/details/109801411
创建DLL文件
创建的DLL文件包括三个文件(.h/.dll/.lib),
1、打开VS新建一个项目。
2、选择DLL,附加选项选择空项目
3、在头文件和源文件下分别添加如下文件
4、在头文件CaculatorDLL.h中添加如下代码(具体可以自己定义代码),最上面的宏定义判断何时用外部接口,何时用内部接口,实在不理解的照着用就好了。哈哈!
#ifdef PORT_STYLE
#else
#define PORT_STYLE _declspec(dllimport)//当编译时,头文件不参加编译,所以.cpp文件中先定义,后头文件被包含进来,因此外部使用时,为dllexport,而在内部编译时,则为dllimport
#endif
//绝对值加法
double PORT_STYLE AbsAdd(double add1, double add2);
//Caculator类
class PORT_STYLE Caculator
{
public:
//创建一个Cacualtor对象
Caculator();
//创建一个Cacualtor对象
Caculator(double x, double y);
//析构Cacualtor对象
~Caculator();
//加法
double Add(double x, double y);
//减法
double Sub(double x, double y);
//乘法
double Mult(double x, double y);
//除法
double Divi(double x, double y);
private:
double num1;
double num2;
};
5、在源文件CaculatorDLL.cpp中添加如下代码
#define PORT_STYLE _declspec(dllexport)
#include"CaculatorDLL.h"
double PORT_STYLE AbsAdd(double add1, double add2)
{
return add1 + add2;
}
Caculator::Caculator()
{
}
Caculator::Caculator(double x, double y)
{
num1 = x;
num2 = y;
}
Caculator::~Caculator()
{
}
double Caculator::Add(double x, double y)
{
return x + y;
}
double Caculator::Sub(double x, double y)
{
return x - y;
}
double Caculator::Mult(double x, double y)
{
return x*y;
}
double Caculator::Divi(double x, double y)
{
return x / y;
}
6、按照下图生成文件
7、在项目的Debug文件中生成如下文件
创建测试项目
1、打开VS创建一个新项目
2、生成一下项目,然后在项目所在文件夹内创建一个include文件夹,将1.7中CaculatorDLL.dll和CaculatorDLL.lib以及CaculatorDLL.h放入include文件夹内。
3、在将CaculatorDLL.dll文件放到TestDLL项目的Debug文件夹中。
4 配置环境,打开TestDLL项目的属性。
4.1 配置包含路径
4.2 配置库目录
4.3 配置附加依赖项
5 在TestDLL.cpp中添加如下代码
// TestDLL.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include"include\CaculatorDLL.h"
#include<iostream>
using namespace std;
int main()
{
Caculator myCaculator;
cout << AbsAdd(-1.23, 3.12) << endl;
cout << myCaculator.Add(1.2, 2.1) << endl;
cout << myCaculator.Sub(1.2, 2.1) << endl;
cout << myCaculator.Mult(1.2, 2.1) << endl;
cout << myCaculator.Divi(1.2, 2.1) << endl;
getchar();
return 0;
}
6 按F5得到如下结果,完毕!
分类:
c++徒步 / c++dll篇
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?