memory mapped file 用的很方便,但是我不知道是否可以扩大map到内存的文件镜像的大小,使得文件后面还有一段空白内存空间让我来处理。 
即:map到内存的文件镜像所占的空间,大于该文件的实际大小,不知道是否可行?
如果可以,该怎样做呢?
请指教~~

解决方案 »

  1.   

    HANDLE CreateFileMapping(    HANDLE hFile, // handle to file to map 
        LPSECURITY_ATTRIBUTES lpFileMappingAttributes, // optional security attributes 
        DWORD flProtect, // protection for mapping object 
        DWORD dwMaximumSizeHigh, // high-order 32 bits of object size  
        DWORD dwMaximumSizeLow, // low-order 32 bits of object size  
        LPCTSTR lpName  // name of file-mapping object 
       ); 看清楚了,dwMaximumSizeHigh,dwMaximumSizeLow这两个就是表示文件大小的,如果这两个
    为0 了,那么大小=文件实际大小。所以修改他们就可以了。
      

  2.   

    但问题是,我不是用这种方法map file的
    我用的是MapAndLoad,
    因为我觉得LOADED_IMAGE结构用起来很方便,不用自己手动去找各种各样的信息
    (用MapAndLoad map进来的文件,应该也算memory mapped file吧?)
    如果是用CreateFileMapping, 能否也能用起来LOADED_IMAGE结构呢?
      

  3.   

    LOADED_IMAGE,,是做什么用的,你的map file又是做什么用的,难道是exe,(PE)文件。、??
      

  4.   

    对,我的map file 就是pe文件。loaded_image就是一个数据结构,里面有一些关于pe文件的信息。现在我改邪归正了, 用传统的file mapping 方法,也不是太难用~~
    但是我又有一个想法:用MapAndLoad()map进来的好像不是memory mapped file吧~~ 因为它没有file mapping object~~ 也就无法做到内存共享~~
    不知道我的猜测对不对~~ 
    望高人指点~~