Createfilemappingw和Createfilemapping的区别
时间: 2024-05-20 07:15:47 浏览: 107
CreateFileMappingW和CreateFileMapping是Windows API函数,它们都用于在进程之间共享内存。其中CreateFileMappingW是Unicode版本的函数,而CreateFileMapping是ANSI版本的函数。Unicode版本的函数支持较广泛的字符集,而ANSI版本的函数则只支持英文字母和符号等较小范围的字符集。此外,Unicode版本的函数在使用时需要指定参数的宽字符数,而ANSI版本的函数则需要指定参数的字节数。
相关问题
CreateFileMapping函数
CreateFileMapping函数是Windows API中的一个函数,用于创建或打开一个文件映射对象。它的原型如下:
```
HANDLE CreateFileMapping(
HANDLE hFile,
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximumSizeLow,
LPCTSTR lpName
);
```
参数说明:
- `hFile`:一个已经打开的文件句柄,可以是INVALID_HANDLE_VALUE或NULL,表示映射的是一个新文件;
- `lpFileMappingAttributes`:一个指向`SECURITY_ATTRIBUTES`结构的指针,描述文件映射对象的安全性。可以设置为NULL;
- `flProtect`:指定文件映射对象的访问权限。可以是`PAGE_READONLY`、`PAGE_READWRITE`、`PAGE_WRITECOPY`等等;
- `dwMaximumSizeHigh`和`dwMaximumSizeLow`:指定文件映射对象的大小,以字节为单位;
- `lpName`:指定文件映射对象的名称。如果是打开一个已经存在的文件映射对象,需要指定该参数。
函数返回一个句柄,表示创建或打开的文件映射对象。如果函数执行失败,返回NULL。
文件映射对象可以映射到一个文件,也可以不映射到文件。如果不映射到文件,就可以使用共享内存的方式实现进程间通信,将数据共享到不同的进程中。
createfilemapping 进程通信
CreateFileMapping 是一个 Windows API,它可以用来创建一个文件映射对象,从而实现进程间通信。具体来说,一个进程可以通过调用 CreateFileMapping 来创建一个文件映射对象,并将这个对象映射到它的地址空间中。其他进程可以通过打开同一个文件映射对象来获得对同一物理内存的访问权,从而实现进程间通信。这种方式可以用来共享内存、共享数据等等。
阅读全文