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

求解:VC LoadImage 加载失败,该如何处理

2012-05-22 
求解:VC LoadImage 加载失败情况是这样的,建立一个MFC对话框,单击按钮读入图像test.bmp(用CFile 读取的)并

求解:VC LoadImage 加载失败
情况是这样的,建立一个MFC对话框,单击按钮读入图像test.bmp(用CFile 读取的)并进行处理,图像处理后用CFile保存为testbk.bmp;这时会弹出另一个对话框以便显示处理后的图像。我是用LoadImage 加载testbk.bmp,但是总是加载失败,返回空句柄。程序大致如下:
CTestDlg::OnBnClicked()
{
  CString openpath,savepath;
  CFileDialog openfile(...);
  if(openfile.DoModal==IDOK)
  {
  openpath=openfile.GetPathName();  
  }
  ImageProcess()
  SaveImage(savepath);
  DisplayDlg displaydlg;
  if(displaydlg.DoModal)
  {
  displaydlg.filename=savepath;
  }
}

DisplayDlg::OnInitDlg()
{
  m_hBMP=(HBITMAP)LoadImage(AfxGetInstanceHandle(),filename,...,LR_FRONMFIEL);//执行失败!
  //但是如果将filename替换成“testbk.bmp”就能加载成功!这是什么原因呢?
}

[解决办法]
DisplayDlg::OnInitDlg()
{
 char filename[256];
 strcpy(filename,"testbk.bmp");
m_hBMP=(HBITMAP)LoadImage(AfxGetInstanceHandle(),filename,...,LR_FRONMFIEL);
}
[解决办法]
GetLastError看看什么情况。
[解决办法]
如果是完整路径,每个反斜杠都写两次。比如
D:\Temp\Image.bmp
写成:
"D:\\Temp\\Image.bmp"

/
[解决办法]
那错误就明显了嘛。

CFile写完以后,没有关闭文件句柄呗。。。。

热点排行