vs2017静态库和动态库的创建与使用简明教程

vs2017静态库和动态库的创建与使用简明教程

  • 静态库创建和使用
    • 创建
    • 使用
    • 易错点
  • 动态库创建和使用
    • 创建
    • 使用
    • 注意
    • DLL的好处
  • Others

静态库创建和使用

创建

  1. 打开vs2017点击创建新项目,选择静态库

  2. 在StaticLib.cpp文件下写实现,再创建一个对应的头文件写声明:

vs2017静态库和动态库的创建与使用简明教程_第1张图片

vs2017静态库和动态库的创建与使用简明教程_第2张图片

  1. 项目->生成 即可在输出文件夹下得到对应的lib文件:

在这里插入图片描述

使用

新建一个项目,点击属性,配置三条款项:

  1. VC++目录的包含目录和库目录分别加入lib对应头文件的位置和lib文件的位置;
  2. 链接器->输入 添加lib文件的名字;

vs2017静态库和动态库的创建与使用简明教程_第3张图片
vs2017静态库和动态库的创建与使用简明教程_第4张图片

在需要的项目文件中添加lib对应的头文件,之后使用函数即可:

vs2017静态库和动态库的创建与使用简明教程_第5张图片

易错点

  1. 配置项目属性时一定要看好自己运行的环境是Debug还是Release,是X86还是X64,配置一定要对应(例如配置的是Debug的属性结果Release没配置还去生成Release版本);
  2. lib文件创建在x86还是x64那么使用这个lib时项目也只能运行在对应的版本上!否则会报LINK2019:

vs2017静态库和动态库的创建与使用简明教程_第6张图片

动态库创建和使用

创建

  1. 新建项目->具有导出项的动态链接库(不然可能不会生成lib文件,lib是指向dll的桥梁):

vs2017静态库和动态库的创建与使用简明教程_第7张图片

  1. 创建好该项目后,会发现有一个与项目名称相同的h文件和cpp文件,里面写好了基本的代码,只需要在其基础上模仿添加自己的业务代码即可(注意无论是函数还是变量都要有DLL3_API这个宏,表示导出项):
    vs2017静态库和动态库的创建与使用简明教程_第8张图片

  2. 在cpp文件中实现自己的业务函数:
    vs2017静态库和动态库的创建与使用简明教程_第9张图片

  3. 生成代码(注意之后使用dll和生成dll所在的平台要一致,x86或x64)

  4. 生成完毕后会在对应文件夹(e.g. DEBUG)下找到dll文件和lib文件:

vs2017静态库和动态库的创建与使用简明教程_第10张图片

使用

  1. 创建一个新项目;
  2. VC++目录的包含目录和库目录分别加入lib对应头文件的位置和lib文件的位置;
  3. 链接器->输入 添加lib文件的名字;
  4. 将dll文件复制到项目DEBUG文件夹下或者Release文件下(exe在哪就放哪);

vs2017静态库和动态库的创建与使用简明教程_第11张图片

  1. 编译项目即可;

前三步和使用静态库是一致的,可以理解为动态库是通过这个静态导入库导入的(该导入库仅包含 DLL 文件中存储的函数信息,无具体实现);

注意

如果不想每一次都拷贝dll文件到对应exe路径下,在vs中可以这样设置:

项目->属性->调试->环境

输入 path=dll文件的路径

vs2017静态库和动态库的创建与使用简明教程_第12张图片

DLL的好处

DLL文件中的函数可以被多个程序共用。因此,借助该功能可以节约内存和磁盘。此外,在对函数的内容进行修正时,还不需要重新链接(静态链接)使用这个函数的程序。

Others

lib一般需要h文件提供api;dll一般需要lib导入库+对应的h文件提供接口。

你可能感兴趣的:(C++,visual,studio,c++,ide,静态库,动态库)