用CArchive如何来序列化自定义的结构体??急!!

rabbit_zizhu 2009-03-22 04:29:35
自定义的结构图如下:

struct A{
CString str;
};
typedef struct B
{
struct A a;
CString s[3];
};

想网络传输结构体B,该怎么序列化呢,最好举个例子
...全文
209 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengde007 2009-03-23
  • 打赏
  • 举报
回复
ls想干什么,到这里来撒野。
byxdaz 2009-03-23
  • 打赏
  • 举报
回复
将结果转换成字节数据,先把数据大小写入,再写入字节内容.也可以将数据构建成CObject类的形式.
比如:
struct A{
CString str;
};
int nCount = A.str.GetLength();
BYTE *pData = new BYTE[nCount+1];
memcpy(pData,A.str.GetBuffer(nCount),nCount);
CFile f;
char buf[512];
if( !f.Open( "C:\test.dat", CFile::modeCreate | CFile::modeWrite ) ) {
#ifdef _DEBUG
afxDump << "Unable to open file" << "\n";
exit( 1 );
#endif
}

CArchive cf(f,CArchive::store);//写入
cf<<nByteCount;
for(int i=0;i<nCount;i++)
cf<<pData[i];
wqvbjhc 2009-03-23
  • 打赏
  • 举报
回复
例子
struct   A{   
int a ;
float b;
friend CArchive & operator <<(CArchive & arc,A &data);
friend CArchive & operator >>(CArchive & arc,A &data);
}

CArchive & operator <<(CArchive & arc,A &data)
{
arc<<a<<b;
return arc;
}
CArchive & operator >>(CArchive & arc,A &data)
{
arc>>a>>b
return arc;
}

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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