Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2014/7/19 0:11:51 delphi映像内存的操作
映像内存的操作在Win32 中,可以通过映像文件在进程中实现共享文件或共享内存数据块。当利用相同的映像名字或文件句柄时,不同的进程可以通过一个地址指针对同一个文件或同一个内存数据块进行读写,并把它当做该进程内地址空间的一部分。在Windows 9x/NT/2000/XP 向内存中装载文件时,使用了特殊的全局内存区。在该区域内,应用程序的虚拟内存地址要和文件中的相应位置对应。由于所有进程共享了一个用于存储映像文件的全局内存区域,因而当两个进程装载相同模块(应用程序EXE 或DLL 文件)时,它们实际上是在内存中共享其执行代码。内存映像文件可以映射一个文件、一个文件中的指定区域或者指定的内存标志,其中的数据可以用内存读写指令来直接访问,而不必频繁地调用ReadFile 或WriteFile 这样的I/O 系统函数,从而提高了文件存取速度和效率。映像文件的另一个重要应用就是支持永久命名的共享内存。要在两个应用程序之间共享内存,可以在一个应用程序中创建一个文件并映射它,然后另一个应用程序可以通过打开和映射该文件,把它作为自己进程的内存来使用(实际上是所有进程共享的)。
赞