动态链接库金额静态链接库的

来源:互联网 发布:centos搭建网站教程 编辑:程序博客网 时间:2024/06/03 10:30
静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。  


静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。




一个静态库中的全局变量被同一个进程的不同的dll调用时,每一个dll对这些全局变量都各自有一份独立的存储空间,即使这些dll处于同一个线程。因为 是静态库,在编译每一个独立的dll时,就已经为每个dll分配了静态库中全局变量的存储空间,所以在一个dll中修改被调用静态库中某个全局变量,并不会影响另一个dll中调用的同一个静态库中这个全局变量的值。


    一个动态库中的全局变量被同一个进程的不同的dll调用时,所有的dll共享这些全局变量,当一个dll修改了被调用的dll中某个全局变量的值,其它的dll再读取这个被调用dll的全局变量时,值也会跟着改变。
0 0
原创粉丝点击