读书人

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

发布时间: 2012-05-22 18:18:54 作者: rapoo

求解: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写完以后,没有关闭文件句柄呗。。。。

读书人网 >C++

热点推荐