永发信息网

dll动态链接库文件不是已经被编译和链接好的二进制文件了吗?怎么还会被损坏呢?

答案:2  悬赏:0  手机版
解决时间 2021-02-19 04:09
不是封装好了吗,难道DLL还可以被修改????
最佳答案
当然可以修改了。Dll和EXE文件格式类似,你的EXE文件可以被修改,DLL文件当然也可以被修改了。Dll中除去重定位等信息,还包含机器码也就是CPU可执行的指令,这些都是可以修改的。
全部回答
一、动态链接库的概念    动态链接库(dynamic link library,缩写为dll)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于dll中虽然包含了可执行代码却不能单独执行,而应由windows应用程序直接或间接调用。    动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话说,函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在windows的管理下,才在应用程序与相应的dll之间建立链接关系。当要执行所调用dll中的函数时,根据链接产生的重定位信息,windows才转去执行dll中相应的函数代码。    一般情况下,如果一个应用程序使用了动态链接库,win32系统保证内存中只有dll的一份复制品,这是通过内存映射文件实现的。dll首先被调入win32系统的全局堆栈,然后映射到调用这个dll的进程地址空间。在win32系统中,每个进程拥有自己的32位线性地址空间,如果一个dll被多个进程调用,每个进程都会收到该dll的一份映像。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
NVIDIA Optimus Driver Update和显卡驱动一样
跌伤了,第一天没大碍,第二天肿了怎么办
对于重要建设项目方案比选的工作内容有:①比
三叔牛杂店这个地址在什么地方,我要处理点事
济宁哪里有卖质量好的瓷碗盘子碟子勺子等家用
天正怎么加打印机
日立和大金的中央空调哪个好
单招面试会问什么
太极大药房新都区三河金顺堂药房地址在什么地
物质A溶解度曲线是随温度升高而增大的,若一定
解释下列词语在不同句中的含义
京极夏彦妖怪推理系列。txt.
从国外回国后长痘的原因
多乐士孟津总代理怎么去啊,有知道地址的么
根吸水的主要部位是成熟区,以此相适应的结构
推荐资讯
小车到了80迈加速时,为什么发动机有抖动?且
“爽”是什么结构
女朋友突然问你 想吃苹果,可是没人帮我削皮
下列动物行为中属于后天性行为的是A. 鸟类孵
【t sina】已知向量a=(12)b=(cosasina)设m=a
科鲁兹电瓶型号12v55可以用吗
【来过倒】驴是的念来过倒?你仔细LOOKANDLOOK
融通汇信地址有知道的么?有点事想过去
旧房子重建新房子,但门前有一条桥,算不算是
华为信息安全部门是采取什么样的技术手段来锁
中国有多少民用军民两用机场
没有养狗证的被车撞死属不属于交通事故
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?