C chcw Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-09 #1 如果映射成功,那么返回的指针只有4个字节,如何用它来表示大于2G的文件地址呢?
X Xxfeng Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-09 #2 参见这里 http://forum.vclxx.org/topic.asp?TOPIC_ID=10812&FORUM_ID=9&CAT_ID=2&Topic_Title=%BD%D0%B0%DD+MapViewOfFile%28+%29%A4%A4%AA%BA%B0%D1%BC%C6&Forum_Title=WinAPI
参见这里 http://forum.vclxx.org/topic.asp?TOPIC_ID=10812&FORUM_ID=9&CAT_ID=2&Topic_Title=%BD%D0%B0%DD+MapViewOfFile%28+%29%A4%A4%AA%BA%B0%D1%BC%C6&Forum_Title=WinAPI
Y YB_unique Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-09 #3 MapViewOfFile映射的是一个由操作系统页文件支持的特殊逻辑映象文件, 而不是由实际操作系统的文件支持的逻辑映象文件。 var MapFile: THandle; MapFilePointer: Pointer; MapFilePointer:=MapViewOfFile(MapFile,File_Map_All_Access,0,0,0);//访问整个映象文件,最后一个参数要为0 MEMO.Text:=PChar(MapFilePointer);//读出所有内容
MapViewOfFile映射的是一个由操作系统页文件支持的特殊逻辑映象文件, 而不是由实际操作系统的文件支持的逻辑映象文件。 var MapFile: THandle; MapFilePointer: Pointer; MapFilePointer:=MapViewOfFile(MapFile,File_Map_All_Access,0,0,0);//访问整个映象文件,最后一个参数要为0 MEMO.Text:=PChar(MapFilePointer);//读出所有内容
C chcw Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-09 #4 各位,我的意思是如果我映射的文件是10G的,那么调用MapViewOfFile后得到的指针,如果 要读8G处的一个字节应该怎么做呢?
X xwings Unregistered / Unconfirmed GUEST, unregistred user! 2001-12-10 #5 mapViewOfFile 的第三和第四个参数就是文件的偏移大小. 和起来就是64bit的地址啦. 返回的指针就是只有32位的. 因为win32可访问的内存只有4GB . 所以要访问10G的文件的话, 只要中途多次修改映射的偏移大小就可以了.
mapViewOfFile 的第三和第四个参数就是文件的偏移大小. 和起来就是64bit的地址啦. 返回的指针就是只有32位的. 因为win32可访问的内存只有4GB . 所以要访问10G的文件的话, 只要中途多次修改映射的偏移大小就可以了.