📄 hgf.cpp
字号:
// HGF.cpp: implementation of the HGF class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "HGF.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
HGF::HGF()
{
}
HGF::~HGF()
{
}
bool HGF::Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp)
{
if(byClassLevels>1)
return DSPACT::Serialize(byClassLevels-1,byAttrNo,dsp);
else
{
switch(byAttrNo)
{
case 1: //序列化一个BYTE型变量
dsp.Write(this->m_byValue);
return false;
case 2: //序列化一个short型变量
dsp.Write(this->m_sValue);
return false;
case 3: //序列化一个WORD型变量
dsp.Write(this->m_wValue);
return false;
case 4: //序列化一个结构
dsp.Write((char*)&this->m_hCVB,sizeof(struct HGF_CVB),true);
return false;
case 5: //序列化一个内含指针的复杂结构,先序列化非指针变量部分
dsp.Write((char*)&this->m_hCOMB,2);
return false;
case 6: //序列化复杂结构中的指针变量string
dsp.Write(this->m_hCOMB.strDetail);
return false;
case 7: //序列化复杂结构中的指针变量CString
dsp.Write((LPSTR)(LPCTSTR)this->m_hCOMB.strApp,this->m_hCOMB.strApp.GetLength());
}
}
return true;
}
bool HGF::UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen)
{
//反序列化对象
if(byClassLevels>1)
return DSPACT::UnSerialize(byClassLevels-1,byAttrNo,dsp,dwLen);
else
{
switch(byAttrNo)
{
case 1: //反序列化一个BYTE类型变量
dsp.Read(this->m_byValue);
return false;
case 2: //反序列化一个short类型变量
dsp.Read(this->m_sValue);
return false;
case 3: //反序列化一个WORD类型变量
dsp.Read(this->m_wValue);
return false;
case 4: //反序列化一个结构
dsp.Read((char*)&this->m_hCVB,dwLen);
return false;
case 5: //反序列化一个内含指针的复杂结构,先反序列化非指针变量部分
dsp.Read((char*)&this->m_hCOMB,dwLen);
return false;
case 6: //反序列化复杂结构中的指针变量string
dsp.Read(this->m_hCOMB.strDetail,dwLen);
return false;
case 7: //反序列化复杂结构中的指针变量CString
if(this->m_hCOMB.strApp.IsEmpty())
{
//如果对象还没有被初始化
char *lp =this->m_hCOMB.strApp.GetBuffer(dwLen);
dsp.Read(lp,dwLen);
}
else
{
//如果对象已经被初始化
this->m_hCOMB.strApp.ReleaseBuffer();
}
}
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -