A
ayztj
Unregistered / Unconfirmed
GUEST, unregistred user!
vc++在内存中建了一个映射空间,我读取这个共享内存块中的数据:<br>其中,hmapfile是我定义的THandle,MAP_FILE_NAME是内存块的名称<br><br> hmapfile:=OpenFileMapping(File_Map_Read,false,pchar(MAP_FILE_NAME));<br> if (hmapfile<>0) then<br> MapFilePointer:= MapViewOfFile( hmapfile,FILE_MAP_ALL_ACCESS,0, 0,0);<br><br>程序在98下面完全没有问题,可以读出数据,但是换了2000或者XP,就不行了,根本读不出数据,但是也不提示报错,只是读不出数据而已。<br>在2000和XP下经过断点调试,发现不管如何,hmapfile的值始终为零,即无法获得共享内存块的句柄。因而数据自然也无法读出,但是在98下时却一切都很正常。<br>而且同学用vc++在2000和XP下均可以正常读出数据。<br>请问这到底是怎么回事呢。是OpenFileMapping本身的问题还是2000和XP系统不支持OpenFileMapping的问题呢?