Win2000的共享内存是同机进程间通信的一个省事的办法。虽然只能在同一台机器上起作用,但使用起来很方便。现在下面开始介绍一下函数:
1. CreateFileMapping
第一个参数是一个File的句柄,具体见下面所示。
第二个参数就是NULL了,具体怎么用,不清楚。
第三个参数是权限。
第四个和第五个参数是最大最小容量。
第六个参数是内存名称,这在系统中是唯一的
2. OpenFileMapping
3. MapViewOfFile
这两个参数就是指打开文件的OFFSET,因为一般文件不会大于4G,所以一般高位这个都被忽略掉了。
然后就可以用指针对共享内存进行操作了。
4. MapViewOfFileEx
这个函数和上面的函数最本质的区别在于LPVOID lpBaseAddress,这个参数是问题的关键,这个地方能预先指定一个开始的地址,没有用过,不过比较有意思
5. FlushViewOfFile
顾名思义,把文件往硬盘上写。那些无名文件,当然不可以了。
6. UnmapViewOfFile
关闭内存共享文件。如果还有文件句柄,需要另外关闭。
又及:如果文件句柄如果不使用INVALID_HANDLE_VALUE,则需要创建或者打开一个句柄,通常的办法有:
1. CreateFileForMapping
2. CreateFile