如题所述,我查询了一下,说是可以通过使用内存映射文件来处理大文件,但我不知道该如何具体实现。这是内存映射文件的网址:http://www.yesky.com/20030117/1649013.shtml
以下我是原来的导入位图代码(我用的是单文档):void CImage13View::OnFileOpen()
{
// TODO: 在此添加命令处理程序代码
CString strFilter;
CSimpleArray<GUID>aguidFileTypes;
HRESULT hResult; //获取CImage支持的图像文件的过滤字符串
hResult=m_Image.GetExporterFilterString(strFilter,aguidFileTypes,_T("All Image Files"));
if(FAILED(hResult))
{
MessageBox(_T("GetExporterFilter调用失败!"));
return;
}
CFileDialog dlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST,strFilter);
if(IDOK!=dlg.DoModal())
return;
m_Image.Destroy();
//将外部图像文件装载到CImage对象中
hResult=m_Image.Load(dlg.GetFileName());
if(FAILED(hResult))
{
MessageBox(_T("调用图像文件失败!"));
return;
}
//设置主窗口标题栏内容
CString str;
str.LoadString(AFX_IDS_APP_TITLE);
AfxGetMainWnd()->SetWindowText(str+_T("-")+dlg.GetFileName());
Invalidate();//强制调用OnDraw函数
}