由于毕业设计要用到C++动态链接库的创建,看了很多博客之后,实现了这个功能。现在简单介绍一下。
一:创建C++的DLL工程文件
1.新建c++项目,win32控制台程序,命名为:MyDLL,解决方案为:MyDLLSolution.
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE4Ny9mMzRhZDhkZWJmMTEzY2FlOWIyMTlmNjU0ZTdlZjY0My5wbmc%3D.png?w=700&webp=1)
2.单击“下一步”,“应用程序类型”选择“DLL”,“附加选项”勾选“空项目”,单击“完成”。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE5OC9jNTU2YTA4M2RmN2I0NGUwNjk3NTk2ZTc4YjRkNDdhNi5wbmc%3D.png?w=700&webp=1)
3.为解决方案“MyDLLSolution”下的项目“MyDLL”添加头文件MyDll.h,代码如下
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUwOS80MTRkNmQ3ZTlkZWY5MmM4MWMyNzIyNDAyNGE4YTdlNS5wbmc%3D.png?w=700&webp=1)
PS:修饰符__declspec(dllexport)使 DLL 能够导出该方法以供其他应用程序使用
4.为解决方案“MyDLLSolution”下的项目“MyDLL”添加源文件MyDLL.cpp,代码如下:
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkwNS85MTg1MjgzMjlhMzI3NTM4ODkxOTI5NmE1NDM5NDc4MS5wbmc%3D.png?w=700&webp=1)
5.单击“生成”菜单中的“生成解决方案”菜单。在相应的文件夹可以看到生成的dll文件和lib文件。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE1My9lODdlOTFmODMyYjJkOGZjNTE4NjQyNmM3M2I2NDE5MS5wbmc%3D.png?w=700&webp=1)
二:使用动态链接库
1.右键单击解决方案名称MyDLLSolution,“添加”,“新建项目”,“win32控制台应用程序”,名称为MyDLLTest,“确定”。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY4NS9iMDEwZGQzOTEzNzExNmUyNmMxMWZmNThiODVlNTMzZC5wbmc%3D.png?w=700&webp=1)
2.单击“下一步”,选择“应用程序类型”下的“控制台应用程序”,不勾选“附加选项”下的“预编译头”,单击“完成”。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYvYWRjMjc4YjViYTM2MWEzMDcwMDNlNGE3ZTc5MDFmZWUucG5n.png?w=700&webp=1)
3.配置引用动态链接库。右键单击项目MyDLLTest下的“引用”,选择“添加引用”,勾选列表中的MyDLL,确定。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE5My8yZDA0Y2ExY2FmMGJkM2M4ZGIzMjQzZWJkMTE5NjAwMS5wbmc%3D.png?w=700&webp=1)
4.添加动态链接库的头文件路径。
右键单击项目MyDLLTest,单击左侧“配置属性”下的“C/C++”节点下的“常规”选项,在右侧“附加包含目录”的值域中键入MyDll.h
头文件所在的路径
(如D:\Homework\graduationProject\code\testCode\MyDLLSolution\MyDLL)。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU1Ni82YTQ2Mjk5Mjc4OTBhODdkYmI0NzA0MjQ4NGYyNzcxNC5wbmc%3D.png?w=700&webp=1)
5.添加动态链接库文件的路径。
单击左侧“配置属性”下的“调试”选项,在右侧“环境”值域中键入PATH=<MyDLL.dll文件的路径>,例如这里MyDLL.dll的实际路径是PATH=D:\Homework\graduationProject\code\testCode\MyDLLSolution\Debug\MyDLL.dll,单击“确定”。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzk4NC80OTA3NDRhOTFlMmU1ZWE0MjY4MWZlNWMxYjFiYzRhMC5wbmc%3D.png?w=700&webp=1)
6.编辑MyDLLTest.cpp中的代码如下。
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzExNS9jNDI1MWM2YjI1Mzk1MzFjOWFiMDMxMGFkZGUwYmU3Yi5wbmc%3D.png?w=700&webp=1)
7.把MyDLLTest设置为启动项,运行
![使用VS2015 创建C++动态链接库并调用 使用VS2015 创建C++动态链接库并调用](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYzMS82NTMzYWJjOWQ4NzNlMzdlZGQ3ZGJjNGVhNDllOGUyZi5wbmc%3D.png?w=700&webp=1)