在VS2017中创建和使用动态链接库DLL.docx_第1页
在VS2017中创建和使用动态链接库DLL.docx_第2页
在VS2017中创建和使用动态链接库DLL.docx_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在VS2017中创建和使用动态链接库DLL一、在VS2017中创建DLL动态链接库1、 运行VS2017,选择:新建-项目-Visual C+ -Windows桌面-动态链接库(DLL),选择保存项目位置,输入项目名称(也是动态链接库的名称),确定。2、 给项目添加头文件:15MyDLL.h,3、 查看项目属性:配置属性-C/C+ - 预处理器 - 预处理定义:已经自动加上“MY15MYDLL_EXPORTS”,把它修改成“EXPORT_DLL”,不修改也是可以的,只是字符串比较长而已,应用并确定。4、在头文件中,写入代码:#ifndef EXPORT_DLL /如果没有在项目配置属性-C/C+ -预处理器定义了“EXPORT_DLL”#define EXPORT_API _declspec(dllimport) /宏定义_declspec(dllimport)为EXPORT_API,即为导入,从DLL中导入到应用程序#else /否则(如果在于处理器定义了EXPORT_DLL)#define EXPORT_API _declspec(dllexport) /EXPORT_API 被定义成导出_declspec(dllexport),从DLL中输出变量、函数或类等#endif / !EXPORT_DLL添加全局变量、函数和类:extern EXPORT_API float const PII = 3.14159; /导出一个常变量,要赋初值,在头文件中,要用extern修饰为全局变量,EXPORT_API float 圆面积(float); /导出一个函数class EXPORT_API 球体 /导出一个类,EXPORT_API 跟在类名前,在关键字class后public:球体();球体();private:;给类添加变量:给类添加成员函数:5、生成DLL动态链接库:注意:在*.cpp中,#include stdafx.h要在#include 15MyDLL.h前面哦,不然会有一堆错误出现!#include stdafx.h在前,就没有出错。6、将生成的DLL对应的*.dll、*.lib和*.h复制出来,拷贝到应用程序中项目中,导出相应的变量、函数和类。二 、DLL动态链接库在应用程序开发中的使用1、创建一个控制台应用程序:新建 -项目-Visual C+ - Windows桌面-windows控制台应用程序 ,输入项目名称,选择好创建位置,确定。 2移除不需要的头文件*.h和*.cpp源文件:选择删除文件:用同样的方法删除不需要的*.cpp源文件:3、在应用程序.cpp中删除包含已删去的*.h等语句:最终清理成为:看起来清爽多了吧!4、用鼠标右键选择项目解决方案 生成解决方案:出现错误:pch.h被我删除了,右键选择项目名称属性:选择C/C+ -预编译头 不使用预编译头 -应用 - 确定。再次选择项目解决方案 - 重新生成解决方案:顺利通过,成功生成应用程序:5、复制上一个创建DLL动态链接库项目中生成的*.dll到本应用程序项目中的Debug目录中,把生成的DLL动态链接库文件复制过来了:同样的方法,把上一个创建DLL动态链接库项目中的DLL头文件和生成的*.lib文件,复制到本项目文件夹中:再把创建动态链接库的头文件也复制在该文件夹中:6、将复制过来的动态链接库的头文件添加到项目中:添加到项目中了:在使用动态链接库的应用程序cpp源文件中,包含该头文件,并添加语句:using namespace std;打开包含的头文件,并作适当修改后,保存:右键选择项目属性:配置属性-链接器 -输入 - 附加依赖项 -编辑-添加动态链接库的入口文件.lib:键入lib文件名称后,确定。重新生成解决方案:没有错误!7、在该应用程序cpp源文件中添加导出变量、函数、和类的代码:重新生成解决方案,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论