关于信息保存,序列化的问题 将数据保存在文件中,可以使用xml,ini以及数据库等,不过用户可以通过相关工具很轻易的看到保存的内容,我想如果将一些数据用二进制的方式保存在自定义的类型文件中,应该就可以达到保密的要求了吧,这应该用到哪些函数?望大侠指点一下,我看了序列化,不过这个是保存类对象的,我只想保存一些松散的数据,虽然有变通的方法,但我想知道序列化的原理,所以想问问MFC的序列化实际上封装了哪些函数?我自己来做一个序列化和反序列化的类需要调用哪些函数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 xml,ini都是标准的格式,软件标准化是趋势。二进制的方式也没什么特别的自己定义数据结构就好,一样的read,write. CFile file; if(bIsStoring) //保存 { if( !file.Open(strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive | CFile::typeBinary) ) {#ifdef _DEBUG AfxMessageBox("Unable to open file!");#endif return false; } CArchive ar(&file,CArchive::store); ret = m_pPenFeature->Serialize(ar); ar.Flush(); //写完毕,关闭文件流 ar.Close(); } else { if( !file.Open(strFileName,CFile::modeRead | CFile::shareExclusive | CFile::typeBinary) ) {#ifdef _DEBUG AfxMessageBox("Unable to open file!"); #endif return false; } CArchive ar(&file,CArchive::load); m_pPenFeature = new CPenFeature; ret = m_pPenFeature->Serialize(ar); ar.Flush(); //读完毕,关闭文件流 ar.Close(); }给个例子你看下吧~~这个就是实现MFC的串行化 恩,查了MSDN,看到了相关函数! des加密 或者自定义数据压缩算法 序列化中其实就是先保存对象所占的大小,然后紧跟着保存对象的数据,比如要保存"abcdef",则会保存6(长度)"abcdef"( 内容),执行反序列化时先读取对象所占的大小(此处为6),然后再读取6个字节的数据。对于int,DWORD等类型,先存储sizeof(int),sizeof(DWORD)等,然后再保存相应的数据。 请教,多线程共享内存程序崩溃的问题?内存访问莫名非法 几行最初级的代码,如何能留住dos窗口呢? 读数据库时发生unhandled exception错误 SendMessage(h_QQMain, WM_CLOSE, 0, 0); 为什么没有正确执行? 如何获得正在播放的视频文件的当前帧? 请教各位在dialogbar上加入一属性页控件为何不可以用? 关于函数返回指针的问题 白色BMP作为背景图的问题? Word组件中为什么不能使用Bookmarks.Item方法 在VS2010中使用CCoolBar 如何修改系统菜单的文本显示? (MFC新手)怎么调用编译器
CFile file;
if(bIsStoring) //保存
{
if( !file.Open(strFileName,CFile::modeCreate | CFile::modeWrite
| CFile::shareExclusive | CFile::typeBinary) )
{
#ifdef _DEBUG
AfxMessageBox("Unable to open file!");
#endif
return false;
}
CArchive ar(&file,CArchive::store);
ret = m_pPenFeature->Serialize(ar);
ar.Flush();
//写完毕,关闭文件流
ar.Close();
}
else
{
if( !file.Open(strFileName,CFile::modeRead | CFile::shareExclusive
| CFile::typeBinary) )
{
#ifdef _DEBUG
AfxMessageBox("Unable to open file!");
#endif
return false;
}
CArchive ar(&file,CArchive::load); m_pPenFeature = new CPenFeature;
ret = m_pPenFeature->Serialize(ar);
ar.Flush();
//读完毕,关闭文件流
ar.Close();
}给个例子你看下吧~~
这个就是实现MFC的串行化
对于int,DWORD等类型,先存储sizeof(int),sizeof(DWORD)等,然后再保存相应的数据。