回 帖 发 新 帖 刷新版面

主题:[讨论]文档视图结构数据同步问题

我用MFC的文档视图结构建的程序,通过文档的Serialize()保存CString数据,但是在保存时我把CString数据进行了字符转化(相当于加密)后保存,如下代码:
void Serialize(CArchive& ar)
    {
        CString strDescription;
        if(ar.IsStoring())
        {
            BYTE byCount;

            byCount = strDescription.GetLength();
            ar.Write(&byCount,sizeof(byCount));
            ar.Write(Jiami(strDescription),byCount); //函数Jiami()表示加密
        }
        else
        {
            char szTemp[MAX_STRING];
            BYTE byCount;

            ar.Read(&byCount,sizeof(byCount));
            ar.Read(szTemp,byCount);
            szTemp[byCount] = 0;
            strDescription = Jiemi(szTemp); //函数Jiemi()表示解密
        }
    }
问题是每次保存数据后,文档自动更新了数据,使得更新后的数据是加密后的数据,而我本来要的是没有加密后的数据(不然视图显示的是乱码)。我的解决方法是每次保存数据后就立即重新打开文档ReOpenDocument()——相当于重新读取数据——因为读取数据时经过了解密,可这种方法并不是好方法。请教还有没有更好的解决方法?

回复列表 (共1个回复)

沙发


"CString strDescription"你定义这个临时变量不是已经解决了你的问题吗,只是你的代码里面好像没有对这个变量赋值.

我来回复

您尚未登录,请登录后再回复。点此登录或注册