一、动态库和静态库的区别
- 静态库与动态库都是共享代码的方式,如果采用静态库,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了,最终的可执行文件exe会比较大。但是若使用 动态库,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。
- 静态库中不能再包含其他的动态库或者静态库;而在动态库中还可以再包含其他的动态或静态库。
- 静态链接库运行之前就加载了,而且一直存在直到关闭程序,动态DLL是在运行时再加载,不用一直占内存,dll模块内部更改了,是要替换Dll即可,方便维护。

二、动态库的使用方法
动态链接库的使用需要库的开发者提供生成的.lib文件和.dll文件。或者只提供dll文件。使用时只能使用dll中导出的函数,未导出的函数只能在dll内部使用。Dll的调用有显示连接和隐式连接两种:隐式连接需要三个东西,分别是*.h头文件,lib库(动态的),DLL库;显示连接只需要.dll文件即可。
2.1 显式加载
这种方式通过调用API函数来完成对DLL的加载与卸载,能更加有效地使用内存,在编写大型应用程序时往往采用此方式。
显式加载优点
- 灵活,可以在需要的时候用LoadLibrary进行加载,在不需要的时候用FreeLibrary进行卸载,这样可以不必占用内存。
- 可以在没有dll时候发现,而不致程序报错。
- 加载程序中有

最低0.47元/天 解锁文章
2893

被折叠的 条评论
为什么被折叠?



