vb6.0 程序应用程序错误: "0x430e2d1e" 指令引用的 "0x00000000" 内存。该内存不能为 "written"。

来源:百度知道 编辑:UC知道 时间:2024/09/26 14:21:07
With Security '安全对象
.nLength = Len(Security)
.lpSecurityDescriptor = 0
.bInheritHandle = True ' Doesn't really matter
End With
mapFileName = "PointDataExchange"
mapFileNum = 0

tCount = GetTickCount()
Dim dataLen As Long
dataLen = Len(onedata) * GetNum
hMap = CreateFileMapping(&HFFFFFFFF, Security, PAGE_READWRITE, 0, dataLen, mapFileName)
程序运行时CreateFileMapping产生的句柄越来越大,说明我在卸载的时候没有成功吗? CloseHandle(hMap) 是这样销毁吧,如果是你说的那样,请问我应当如何避免

hMap是一个windows使用的句柄,通常就是它所代表的对象的起始地址。而windows系统使用主存的时候,是分页管理的,也就是为了更好的实现虚拟存储器这个机制。
主存中每一个页都是有相关属性的,用来表示这个页可以有什麽样的访问方式。
比如说主存中某个页被windows存储管理单元(MMU)标记为只读,如果你在程序中试图写一个数据进入那个页的话,就会出现你所说的错误。
我想你程序就是因为这个原因吧