【发布时间】:2015-05-22 06:09:36
【问题描述】:
我正在尝试将一个相对较大的文件加载到内存中,并能够通过HANDLE 访问它,就像CreateFile() 检索到的一样。
工作流程:
加载文件
在内存中加载时更改多个属性
-
使用有效的
HANDLE将修改后的文件用于其他目的
我无法再次将文件保存到 HDD。
在 MSDN 上有一个示例,我可以在其中创建共享内存:Creating Named Shared Memory 不幸的是,我不太确定这与我的分配有多相关,因为函数检索到的句柄是 FileMapping 句柄,并且缓冲区本身是一个LPCTSTR 指针。
【问题讨论】:
-
是要将文件读入内存,还是通过文件映射访问。
-
从听起来你唯一真正的选择是制作文件的临时副本并打开并修改它。
-
@DavidHeffernan,我不知道我是否想通过文件映射来访问它,这是一种可能性,不确定是否最好,甚至是否可行。
-
我还是不明白你的问题是什么。没关系。
-
@DavidHeffernan 我相信 OP 想要打开一个文件,对其进行未反映在磁盘上的“虚拟”更改,然后将文件句柄传递给其他东西,然后读取“虚拟修改”版本。
标签: c++ winapi memory memory-management shared-memory