共享内存就是说白了就是一种映射。我参考了XOR以及网易“开心一族的博客”的东西。在(winXP+vs2008环境下编译通过)
共享内存在 Windows 中是用 FileMapping 实现的。
HANDLE CreateFileMapping( //返回File Mapping Object的句柄 HANDLE hFile, // 想要产生映射的文件的句柄 LPSECURITY_ATTRIBUTES lpAttributes, // 安全属性(只对NT和2000生效) DWORD flProtect, // 保护标致 DWORD dwMaximumSizeHigh, // 在DWORD的高位中存放 File Mapping Object // 的大小 DWORD dwMaximumSizeLow, // 在DWORD的低位中存放 File Mapping Object // 的大小(通常这两个参数有一个为0) LPCTSTR lpName // File Mapping Object的名称。 );
我们可以用 CreateFileMapping 创建一个内存文件映射对象, CreateFileMapping 这个 API 将创建一个内核对象,用于映射文件到内存。这里,我们并不需要一个实际的文件,所以,就不需要调用 CreateFile 创建一个文件,