1、动态库以及静态库区别
静态库是函数和数据编译进一个二进制文件里面(.lib文件),在使用静态库链接成可执行程序的时候,链接器会复制静态库内的函数和数据进可执行程序里面(.EXE文件),所以在加载库的时候不需要加载相应的库函数
动态库往往是提供两个文件,一个是引入库文件(.lib)和一个DLL(.dll)文件,但是引入库文件(.lib)只是包含DLL文件的导出函数以及函数的变量名符号,而DLL文件里包含了所有的函数以及数据,假如调用动态库是在编译到可执行程序的时候才会调用没有数据以及函数的复制,所以在发产品的时候需要加上相应的动态库
2、动态链接库加载函数的两种方法:
第一种是静态链接方式,在这种方式下,动态链接库中的所有数据代码都将拷贝到调用程序的代码空间中去,此时它和调用程序本身的函数没有什么区别;
第二种是动态链接方式,在这种方式下,动态链接库中的数据代码是在需要的时候才拷贝到内存中去的;
两种方式都可以将外部(动态链接库中的)代码资源提供给调用者使用,但前者是全局的,虽随时可以使用,但会增加内存;而后者是局部的,虽节省了内存,但会增加调用时间。
![在这里插入图片描述](https://img-blog.csdnimg.cn/851b4510e059486ab37c5d84443812a5.jpeg#pic_center)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)