博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态链接库dll
阅读量:4492 次
发布时间:2019-06-08

本文共 618 字,大约阅读时间需要 2 分钟。

DLL(Dynamic Link library):动态链接库,库中包含了由多个程序同时使用的代码和数据。

之所以使用DLL,从下面一张图就能大致看出。

DDL有助于多个程序共享代码和数据。

而我们传统所说的库,如<stdio.h>它们属于静态库:函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,编译链接可执行文件时,链接器从库中复制这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE文件)。

 

而动态库则不需要在编译过程中复制所有的内容,让每个程序一人一份。

在使用动态库的时候,往往提供两个文件:一个引入库和一个DLL。引入库包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中的导出函数。

 

当然,使用DLL有很多优点,但缺点如版本不兼容,同时访问造成的冲突等等。

对于版本不兼容的问题,我们的解决方法是:在于编译程序时,由VS生成一个manifest文件,指明当前应用程序所使用的动态链接库版本号;发布程序时需同时发布该manifest文件。运行调用时,manifest会指定我们所用的动态链接库的版本。

转载于:https://www.cnblogs.com/zhazhalovecoding/p/6098941.html

你可能感兴趣的文章
超过varchar定义长度
查看>>
Js提交Form表单
查看>>
使用pm2管理node.js应用
查看>>
XmlDocumentationExtensions
查看>>
Redux管理机制
查看>>
设置tabbar的角标与第三方库Masonry的基本使用
查看>>
7.7PHP所学知识总结
查看>>
POJ 3304 Segments --枚举,几何
查看>>
【算法题目】编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。...
查看>>
74 Open Source VoIP Apps & Resources 【转】
查看>>
VM虚拟机截图方法介绍
查看>>
servlet-定义+第一个sevlet程序
查看>>
SqlServer基础复习
查看>>
LeetCode【122. 买卖股票的最佳时机 II】
查看>>
label不换行的问题
查看>>
【日志】-2013.11.01
查看>>
Slimer软工课设日报-2016年7月5日
查看>>
【BZOJ 2138】stone
查看>>
【AGC028D】Chord
查看>>
线性筛法与积性函数
查看>>