首页 > 代码库 > 开辟和映射虚拟内存块在不同位数不同操作系统的问题

开辟和映射虚拟内存块在不同位数不同操作系统的问题

一、开辟内存执行的方法流程

1.CreateFileMapping 创建一个内存块,指定大小。

2.OpenFileMapping打开一个已经存在的内存块做映射。

3.MapViewOfFile 获得内存块数据的头指针,需要制定大小。

 

二、操作系统:Windows 7 旗舰版, 32-bit

在不同的进程A和B,A开辟的内存块(名称为VM1)大小为1M,

B映射已经存在的内存块(名称为VM1)的大小可以设置大于1M,不会报错。

 

三、操作系统:Windows 8 Enterprise Edition (Build 9200), 64-bit

在不同的进程A和B,A开辟的内存块(名称为VM1)大小为1M,

B映射已经存在的内存块(名称为VM1)的大小可以设置大于1M,会报错。

“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”

解决的办法:就是开辟和映射的大小设置为一样。