DLL共享的时候采用的是内存映射。想问下,内存映射的映射具体是什么,是在一进程中放置DLL的内存指针,到时候进程运行的时候直接去寻找到DLL位置进行运行,还是将DLL的代码段直接复制到进程里的地址空间?DLL在多个进程一起运行共享的时候,它的生命周期由谁控制?是操作系统还是引用的进程控制?如果是引用的进程控制,是不是第一个运行的进程最先得到DLL的控制权?因为它最先把DLL从文件载入到内存?
解决方案 »
- Fast Report2.51版本如何打印奇偶数页
- 高分:菜单栏使用背景图片,listview的标题栏使用背景图片
- 简单问题,d6有问题d7没问题,奇怪!!!
- 找expressbars
- 为何会出现尚未调用Coinitialize的错误提示????
- 我如何在WebBrowser中访问HTML页面里面的元素?
- 关于笔记本保存问题
- 如何处理RCDATA?
- 那里有跟操作“DateTimePicker“一样的能操作“时间的“ 控件
- delphi 5开发人员指南-这本书对刚学 delphi 的人来说合适吗?
- Undeclared identifier: 'OpenDialog1',帮我看看,哪儿问题
- 请问一下 在做串口通信的时候,如何获取当前发送或接收缓冲区的大小?
与exe一样,代码需要先加载到内存。建议到msdn搜索loadlibrary、loadlibraryEx
dll代码加载到内存,并不是加载在进程的地址空间。进程有load到这个dll,实际上是映射到进程当中。
若其它进程有用到,也是映射;并且引用计数+1. 其实就是一个内核对象。