首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

问大家一个内存映射的有关问题

2012-01-23 
问大家一个内存映射的问题我对一个大数据量的位图创建了一个内存映射对象:FileSrc然后创建一个内存映射对

问大家一个内存映射的问题
我对一个大数据量的位图创建了一个内存映射对象:FileSrc
然后创建一个内存映射对象:FileObj
保存从位图里每四个像素读取一个像素,也就是隔行读取,在同一行里隔一个像素读取一个。
for   (int   k   =   0;k <iPHeight;++k)
      {

            //每行数据隔一个像素拷贝一个  
            BYTE*   Obj=FileObj.GetMapAddress();
            BYTE*   Src=FileSrc.GetMapAddress();
            for(int   s   =   0;   s <iPWidth;++s)
                {
    memcpy(Obj+s,Src+2*s,1);
                }
                FileObj.MoveMapAddress(iPWidth);
                FileSrc.MoveMapAddress(2*iWidth);
        }


现在的情况是:在源图像里读到第70行的时候,源图像内存映射对象的指针,出现错误:CXX0030:   Error:   expression   cannot   be   evaluated

如果我改变函数:
LPVOID   MapViewOfFile(  
    HANDLE   hFileMappingObject,  
    DWORD   dwDesiredAccess,  
    DWORD   dwFileOffsetHigh,  
    DWORD   dwFileOffsetLow,  
    DWORD   dwNumberOfBytesToMap  
);最后一个参数,把它改大一点,出现出现错误的行数就会大一点,我想这应该是内存映射的问题,麻烦大家给我点提示,谢谢了!!




[解决办法]
将最后一个参数改成0

热点排行