您的位置:程序门 -> vc/mfc -> 基础类



1.2g的内存映射失败,紧急求助!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


1.2g的内存映射失败,紧急求助![已结贴,结贴人:sunxuan526]
发表于:2007-02-13 18:58:30 楼主
需要读一个1.2g的图像进行处理,原来用的new分配内存,总是out   of   memory,然后改用了内存映射,代码如下:

handle   hfile   =   createfile(   szfilename,   generic_read,  
file_share_read,   null,
create_always,   file_attribute_normal,   null);
if(hfile==invalid_handle_value)
{
return   null;
}

handle   hfilemap   =   createfilemapping(   hfile,   null,page_writecopy,
                            0,   0,   null);  
if(hfilemap==null)
{
return   null;
}

pdata   =   (byte*)mapviewoffile(   hfilemap,   file_map_copy, 0,   0,   (dword)(dwwidth*dwheight*4));

还是不行,用getlasterror(),返回值是8,说是空间不够,请问高手们应该如何解决,等着干完回家过年啊!!谢谢了!!在线等~~~
发表于:2007-02-13 20:15:281楼 得分:0
亟待高手帮忙。。。。。。。。。。。。。
发表于:2007-02-13 22:22:302楼 得分:10
系统占高端的2gb内存,剩下的才是你应用程序的,但dll映射和别的原因,程序可用的大概也就1。2gb样子。。

试试加上/3gb开关启动一下系统。或者别用内存映射,开一个小点的buffer,例如20mb这样,处理到图象那就把那读取出来。
发表于:2007-02-13 22:49:573楼 得分:0
还可以awe。。。


快速检索

最新资讯
热门点击