这篇文章将为大家详细讲解有关如何使用VS2015创建和使用动态链接库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
我们先来演示如何使用VS2015创建一个动态链接库。
1.新建一个“Win32控制台应用程序”,“名称”为MathFuncsDll,“解决方案名称”为DynamicLibrary,单击“确定”。
2.单击“下一步”,“应用程序类型”选择“DLL”,“附加选项”勾选“空项目”,单击“完成”。
3.为解决方案“DynamicLibrary”下的项目“MathFuncsDll”添加头文件MathFuncsDll.h,代码如下:
#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,代码如下:
// 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)”。 单击“确定”保存更改。
6.按Ctrl+B编译生成该动态链接库,或者单击“生成”菜单中的“生成解决方案”菜单。
至此,一个动态链接库就创建好了,我们可以把头文件和生成的动态链接库文件拷贝到指定的目录调用即可。
下面我们来演示如何使用VS2015引用动态链接库。
1.右键单击解决方案名称DynamicLibrary,“添加”,“新建项目”,“win32控制台应用程序”,名称为MyExecRefsDll,“确定”。
2.单击“下一步”,选择“应用程序类型”下的“控制台应用程序”,不勾选“附加选项”下的“预编译头”,单击“完成”。
PS:通过这种方式可以创建一个空的源程序MyExecRefsDll.cpp。
3.配置引用动态链接库。右键单击项目MyExecRefsDll下的“引用”,选择“添加引用”,勾选列表中的MathFuncsDll,确定。
4.添加动态链接库的头文件路径。 右键单击项目MyExecRefsDll,单击左侧“配置属性”下的“C/C++”节点下的“常规”选项,在右侧“附加包含目录”的值域中键入MathFuncsDll.h 头文件所在的路径(如E:\workplace\DllDemo\DynamicLibrary\MathFuncsDll)。
5.添加动态链接库文件的路径。 单击左侧“配置属性”下的“调试”选项,在右侧“环境”值域中键入PATH=<MathFuncsDll.dll文件的路径>,例如这里MathFuncsDll.dll的实际路径是PATH=E:\workplace\DllDemo\DynamicLibrary\Release\MathFuncsDll.dll,单击“确定”。
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创建和使用动态链接库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。