动态库(.dll)的创建与使用———VS编译器实现

一、动态库的概念

①概念:动态库链接时不复制,程序运行时由系统动态加载到内存,供程序调用。而且系统只加载一次,可以被多个程序共用。
②特点:

  • 动态函数库在编译的时候并没有被编译进目标代码中,需要用到相应的功能,代码才会被调用到程序中,节约内存
  • 动态库的改变,程序也会跟着动态变化,升级更新比较方便

二、VS编译器下动态库的创建

提示:

  • 动态库被其它程序调用,需要动态库提供相应的接口
  • 提供接口的方法是:在向外界提供的接口前加上代码_declspec(dllexport)
  • 动态库编译后会生成.dll与.lib两个文件
  • 不写_declspec(dllexport)声明的将不能被外界程序调用

方法:

  1. 一个项目建议完成后,在属性中将配置类型改为动态库(.dll),并生成解决方案
  2. 在项目路径的上一路径Debug文件夹下会生成一个.dll文件与.lib文件
    动态库(.dll)的创建与使用———VS编译器实现
    动态库(.dll)的创建与使用———VS编译器实现

VS编译器下动态库的调用

动态库的调用分为三步曲,建议一个工程后:

  1. 将.dll与.lib与.h文件放在工程的同目录下
  2. 在代码中导入头文件,解决资源方案管理器中也加入头文件
  3. 调用动态库:分为显示调用和隐式调用

显示调用:

//在代码中加入,前提:工程文件夹下含有.lib文件
#pragma comment(lib,"动态库.lib")

或者在解决资源方案管理器中添加.lib文件:资源文件——>添加现有项(动态库.lib)
隐式调用:

  1. 设置包含目录:属性==>配置属性==>VC++目录==>包含目录(填.h所在文件路径)
  2. 设置库目录:属性==>配置属性==>VC++目录==>库目录(填.lib所在路径)
  3. 设置附加依赖项:链接器==>输入==>附加依赖项==>添加.lib的名称(动态库.lib)

:如果工程下已经包含了.h与.lib文件,包含目录和库目录可以不设置(建议设置),但附加依赖项必须设置
但是如果工程下不包含.h与.lib文件,就要设置.h与.lib所在的路径
动态库(.dll)的创建与使用———VS编译器实现
动态库(.dll)的创建与使用———VS编译器实现
动态库(.dll)的创建与使用———VS编译器实现

四、总结

以上即为动态库创建于调用的所有内容
如有疑问,Q:1286550014