需要在
void CImageProcessingDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
源码中加入m_pDibInit->Serialize(ar);这句代码,其中CDib* m_pDibInit;这句话的调用CDib类中的函数
void CDib::Serialize(CArchive& ar)它的代码如下
void CDib::Serialize(CArchive& ar)
{
DWORD dwPos;
// 获得此归档文件的CFile对象指针
dwPos = ar.GetFile()->GetPosition();
TRACE("CDib::Serialize -- pos = %d\n", dwPos);
// 从归档文件缓冲区中冲掉未写入数据
ar.Flush();
// 重新获得此归档文件的CFile对象指针
dwPos = ar.GetFile()->GetPosition();
TRACE("CDib::Serialize -- pos = %d\n", dwPos);
// 确定归档文件是否被存储,是则进行存储
if(ar.IsStoring()) {
Write(ar.GetFile());
}
// 否则进行加载
else {
Read(ar.GetFile());
}
}
因此,如果没有这句话,图片就无法加载