动态库被多个程度调用时是怎么运行的

csklw_6931 2012-08-07 10:24:47
请教一个关于动态链接库的问题,当动态链接库被多个程序同时调用时,数据是如何做到互不相干的呢?
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
csklw_6931 2012-11-16
  • 打赏
  • 举报
回复
感谢楼上几位的解答!
Miss_Zhao 2012-08-08
  • 打赏
  • 举报
回复
补充一下:

DLL可以包含全局数据及局部数据

  变量范围DLL变量的默认范围与应用程序所声明的变量作用域相同,
DLL源文件中的全局变量对于使用DLL的每个进程是全部可见的。

静态变量受限于声明所在块范畴。默认情况下,每个进程具有自己的DLL全局变量及静态变量实例。

小结:数据段也有细分
csklw_6931 2012-08-07
  • 打赏
  • 举报
回复
感谢解答![Quote=引用 2 楼 的回复:]

主要是利用虚拟内存,它允许库例程的物理内存安全地在多个独立用户空间共享。
代码段通常被使用进程所共享,也就是说它们在物理内存中占据一个地方。
数据段通常是私有的,每个使用进程都有自己的数据副本。
[/Quote]
夏天__ 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

主要是利用虚拟内存,它允许库例程的物理内存安全地在多个独立用户空间共享。
代码段通常被使用进程所共享,也就是说它们在物理内存中占据一个地方。
数据段通常是私有的,每个使用进程都有自己的数据副本。
[/Quote]

学习了。
wshn13 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

主要是利用虚拟内存,它允许库例程的物理内存安全地在多个独立用户空间共享。
代码段通常被使用进程所共享,也就是说它们在物理内存中占据一个地方。
数据段通常是私有的,每个使用进程都有自己的数据副本。
[/Quote]
++
root_jli 2012-08-07
  • 打赏
  • 举报
回复
主要是利用虚拟内存,它允许库例程的物理内存安全地在多个独立用户空间共享。
代码段通常被使用进程所共享,也就是说它们在物理内存中占据一个地方。
数据段通常是私有的,每个使用进程都有自己的数据副本。
wshn13 2012-08-07
  • 打赏
  • 举报
回复
看看程序的链接与装载 不同的程序有不同的虚拟地址空间

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧