假设我想为CreateFile函数生成一个包装函数
这个新函数不会在磁盘上生成真实文件,而是创建文件映射对象并返回新对象的句柄。
我查看了这个示例,创建命名共享内存,并尝试实现我的功能:
#define BUF_SIZE 256
TCHAR szName[] = TEXT("Global\\MyFileMappingObject");
HANDLE MyCreateFile()
{
HANDLE hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
BUF_SIZE, // maximum object size (low-order DWORD)
szName); // name of mapping object
return hMapFile;
}
问题
这对我来说看起来不错,但是,当尝试使用返回HANDLE
的ReadFile函数时,我得到错误代码 6The handle is invalid.
问题
文件映射对象和文件对象可以互换使用吗?如果是这样,那么我的代码有什么问题?如果没有,知道如何实现这样的功能吗?