如何使用VS2015创建和使用动态链接库

发布时间:2021-10-18 11:30:52 作者:小新
来源:亿速云 阅读:315

这篇文章将为大家详细讲解有关如何使用VS2015创建和使用动态链接库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我们先来演示如何使用VS2015创建一个动态链接库。
1.新建一个“Win32控制台应用程序”,“名称”为MathFuncsDll,“解决方案名称”为DynamicLibrary,单击“确定”。

如何使用VS2015创建和使用动态链接库 

2.单击“下一步”,“应用程序类型”选择“DLL”,“附加选项”勾选“空项目”,单击“完成”。

如何使用VS2015创建和使用动态链接库 

3.为解决方案“DynamicLibrary”下的项目“MathFuncsDll”添加头文件MathFuncsDll.h,代码如下:
如何使用VS2015创建和使用动态链接库#pragma once

// MathFuncsDll.h
namespace MathFuncs
{
class MyMathFuncs
{
public:
// Returns a + b
static __declspec(dllexport) double Add(double a, double b);
// Returns a - b
static __declspec(dllexport) double Subtract(double a, double b);
// Returns a * b
static __declspec(dllexport) double Multiply(double a, double b);
// Returns a / b
// Throws DivideByZeroException if b is 0
static __declspec(dllexport) double Divide(double a, double b);
};

PS:修饰符__declspec(dllexport)使 DLL 能够导出该方法以供其他应用程序使用

4.为解决方案“DynamicLibrary”下的项目“MathFuncsDll”添加源文件MathFuncsDll.cpp,代码如下:

如何使用VS2015创建和使用动态链接库 

// MathFuncsDll.cpp
#include <stdexcept>
#include "MathFuncsDll.h"
using namespace std;
namespace MathFuncs
{
double MyMathFuncs::Add(double a, double b)
{
return a + b;
}
double MyMathFuncs::Subtract(double a, double b)
{
return a - b;
}
double MyMathFuncs::Multiply(double a, double b)
{
return a * b;
}
double MyMathFuncs::Divide(double a, double b)
{
if (b == 0)
{
throw new invalid_argument("b cannot be zero!");
}
return a / b;
}
}

5.右键单击项目MathFuncsDll选择“属性”,在左窗格中选择“配置属性”下的“常规”,在右窗格中,将“配置类型”更改为“动态库(.dll)”。 单击“确定”保存更改。

如何使用VS2015创建和使用动态链接库 

6.按Ctrl+B编译生成该动态链接库,或者单击“生成”菜单中的“生成解决方案”菜单。

如何使用VS2015创建和使用动态链接库 

 至此,一个动态链接库就创建好了,我们可以把头文件和生成的动态链接库文件拷贝到指定的目录调用即可。

下面我们来演示如何使用VS2015引用动态链接库。
1.右键单击解决方案名称DynamicLibrary,“添加”,“新建项目”,“win32控制台应用程序”,名称为MyExecRefsDll,“确定”。

如何使用VS2015创建和使用动态链接库 

2.单击“下一步”,选择“应用程序类型”下的“控制台应用程序”,不勾选“附加选项”下的“预编译头”,单击“完成”。

如何使用VS2015创建和使用动态链接库PS:通过这种方式可以创建一个空的源程序MyExecRefsDll.cpp。 

3.配置引用动态链接库。右键单击项目MyExecRefsDll下的“引用”,选择“添加引用”,勾选列表中的MathFuncsDll,确定。

如何使用VS2015创建和使用动态链接库 

4.添加动态链接库的头文件路径。 右键单击项目MyExecRefsDll,单击左侧“配置属性”下的“C/C++”节点下的“常规”选项,在右侧“附加包含目录”的值域中键入MathFuncsDll.h 头文件所在的路径(如E:\workplace\DllDemo\DynamicLibrary\MathFuncsDll)。

如何使用VS2015创建和使用动态链接库 

5.添加动态链接库文件的路径。 单击左侧“配置属性”下的“调试”选项,在右侧“环境”值域中键入PATH=<MathFuncsDll.dll文件的路径>,例如这里MathFuncsDll.dll的实际路径是PATH=E:\workplace\DllDemo\DynamicLibrary\Release\MathFuncsDll.dll,单击“确定”。

如何使用VS2015创建和使用动态链接库 

6.复制下面代码到MyExecRefsDll.cpp中覆盖原来的内容:

// MyExecRefsDll.cpp
// compile with: /EHsc /link MathFuncsDll.lib
#include <iostream>
#include "MathFuncsDll.h"
using namespace std;
int main()
{
double a = 7.4;
int b = 99;
cout << "a + b = " <<
MathFuncs::MyMathFuncs::Add(a, b) << endl;
cout << "a - b = " <<
MathFuncs::MyMathFuncs::Subtract(a, b) << endl;
cout << "a * b = " <<
MathFuncs::MyMathFuncs::Multiply(a, b) << endl;
cout << "a / b = " <<
MathFuncs::MyMathFuncs::Divide(a, b) << endl;
system("pause");
return 0;
}

7.按Ctrl+B或者选择“生成”菜单中的“生成解决方案”可生成可执行文件。

8.右键单击项目MyExecRefsDll选择“设为启动项目”,按Ctrl+F5或选择“调试”菜单中的“开始执行(不调试)”来运行,结果如下:

a + b = 106.4
a - b = -91.6
a * b = 732.6
a / b = 0.0747475
请按任意键继续. . .

关于“如何使用VS2015创建和使用动态链接库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

推荐阅读:
  1. kubernetes中怎么搭建和使用Coredns
  2. Python如何创建和使用字典

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vs2015

上一篇:首选声明式API设计而不是命令式设计的原因有哪些

下一篇:TypeScript的优点有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》