借各位前辈的经验,给点建议

zzunicholas 2006-06-13 11:57:14
MFC多文档程序

打开一个图片文件后,

按保存按钮,应该调用串行化吧
void CdefStressDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
Processor()->Save(ar.GetFile());
}
else
{
Processor()->Load(ar.GetFile());
}
}

Save()这个函数里面有个保存对话框(就是公用的那个CFileDialog)
当我选取消时,程序到没什么问题
但是我发现打开的那个文件变成空的了,0KB

但是(选个图像文件打开后)用 另存为 菜单:
void CdefStressDoc::OnFileSaveAs()
{
// TODO: Add your command handler code here
Processor()->Save(GetPathName());
}

却没有出现将文件变空的问题

但是都是调用同一个函数啊,是不是我对串行化的理解还有问题
想问问各位这大概会是那出了问题?
或者我能不能最终那个地方动了我的文件?
谢谢给位
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ_370566617 2006-06-15
  • 打赏
  • 举报
回复
补充依据

你就把看成串行化是对话一样的
QQ_370566617 2006-06-15
  • 打赏
  • 举报
回复
CSDN也不过如此

Serialize打开的文件怎么能在使用打开对对话框CFileDialog
要是重复打开,其中一个关闭会影响文件的

串行化不要使用重新打开文件的类和函数

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧