动态库

把程序的模块互相分割开,形成独立的文件。而不是采用静态库把不同的模块直接编译在一起。也就是说不对这些组成程序的目标程序进行链接、等待程序运行的时候才链接。

也就是把整个链接过程推迟到了运行的时候再进行。

创建动态库

直接采用空项目处理

然后创建对应的头文件和源文件

需要注意的是由于这是一个在其他文件下也可以使用的函数所以肯定不是普通定义的函数来定义,而是采用规定的导出函数的关键字来定义

 

 

在对应的cpp生成函数的文件中对于函数的生成可以要前面的__declspce(dllexport)来处理函数也可以不要

 

 

然后修改项目属性的配置属性为动态链接库

 

 

直接生成代码,会生成dll和lib文件

运用动态链接库

直接生成动态库代码,会生成dll和lib文件

动态库生成的lib是和静态库生成的lib不一样的

动态库的lib文件只会存放变量的声明和导出函数的申明

函数的实现体放在.dll文件中

 

运用动态库

动态库生成的lib和dll文件都是必须的,但是头文件为了让别人知道有哪些函数所以通常也是一起使用

相当于可以将lib看为头文件,dll看为cpp文件

将dll,lib和头文件放入需要调用的项目文件夹下

 

 

在运行的代码里面添加lib文件的定义,(可以理解为添加头文件)