询问者
运行错误,怎么解决

问题
全部回复
-
启用了“调试堆栈”
当点击bmp图片时,发生上图错误,有“重试”、“继续”和“中断”三个选择,当点击“继续”按钮时,错误信息提示如下:
错误提示的81行代码如图:
整个函数的全部代码如下:
void CNewFileDialog::OnFileNameChange()
{
// TODO: 在此添加专用代码和/或调用基类
CString exp;
exp=GetFileExt();
exp.MakeUpper(); //在比较扩展名时不区分大小写
if(exp == "BMP") //显示位图
{
CFile file;
if(!file.Open(GetPathName(),CFile::modeRead) )
return;
BITMAPFILEHEADER bmfHeader;
//读位图文件头信息
if(file.Read((LPSTR)&bmfHeader,sizeof(bmfHeader)) != sizeof(bmfHeader))
return;
//读位图头信息
BITMAPINFOHEADER bmiHeader;
if(file.Read((LPSTR)&bmiHeader, sizeof(bmiHeader)) !=sizeof(bmiHeader))
return ;
//获得大小信息,并显示
int bmWidth = bmiHeader.biWidth;
int bmHeight = bmiHeader.biHeight;
file.Close();
int x=150,y=150;
if(bmWidth < 150)
x = bmWidth;
if(bmHeight < 150)
y = bmHeight;
m_Bitmap.SetBitmap((HBITMAP)::LoadImage(NULL,GetPathName(),
IMAGE_BITMAP,x,y,LR_LOADFROMFILE));
CFileStatus status;
CFile::GetStatus(GetPathName(),status);
CString measure,size,time;
measure.Format("图像尺寸:%d*%d",bmWidth,bmHeight);
size.Format("文件大小:%dK",status.m_size/1024);
time.Format("创建时间:%s",status.m_ctime.Format("%Y年%m月%d日 %H:%M:%S"));
m_Measure.SetWindowText(measure);
m_Size.SetWindowText(size);
m_Time.SetWindowText(time);
}
CFileDialog::OnFileNameChange();
}