📄 msg.cpp
字号:
void CMsgChangePI::PackToBuf()
{
CData::PackToBuf();
*((DWORD*)(szBuf+BP))=Mask;
BP+=sizeof(DWORD);
if(Mask&NAME)
{
WORD sLen=Name.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Name.GetBuffer(Name.GetLength()));
BP+=sLen;
}
}
if(Mask&SEX)
{
*((BYTE*)(szBuf+BP))=Sex;
BP++;
}
if(Mask&CANBEADD)
{
*((BYTE*)(szBuf+BP))=Canbeadd;
BP++;
}
if(Mask&PHOTOID)
{
*((DWORD*)(szBuf+BP))=PhotoId;
BP+=sizeof(DWORD);
}
if(Mask&AGE)
{
WORD sLen=Age.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Age.GetBuffer(Age.GetLength()));
BP+=sLen;
}
}
if(Mask&COUNTRY)
{
WORD sLen=Country.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Country.GetBuffer(Country.GetLength()));
BP+=sLen;
}
}
if(Mask&PROVINCE)
{
WORD sLen=Province.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Province.GetBuffer(Province.GetLength()));
BP+=sLen;
}
}
if(Mask&CITY)
{
WORD sLen=City.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,City.GetBuffer(City.GetLength()));
BP+=sLen;
}
}
num=BP;
}
BOOL CMsgChangePI::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
Mask=*((DWORD*)(szBuf+BP));
BP+=sizeof(DWORD);
if(Mask&NAME)
{
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Name=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
}
if(Mask&SEX)
{
Sex=*((BYTE*)(szBuf+BP));
BP++;
}
if(Mask&CANBEADD)
{
Canbeadd=*((BYTE*)(szBuf+BP));
BP++;
}
if(Mask&PHOTOID)
{
PhotoId=*((DWORD*)(szBuf+BP));
BP+=sizeof(DWORD);
}
if(Mask&AGE)
{
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Age=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
}
if(Mask&COUNTRY)
{
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Country=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
}
if(Mask&PROVINCE)
{
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Province=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
}
if(Mask&CITY)
{
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
City=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
}
if(num==BP)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CMsgPerson Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsgPerson::CMsgPerson()
{
}
CMsgPerson::~CMsgPerson()
{
}
void CMsgPerson::PackToBuf()
{
CData::PackToBuf();
WORD sLen=Name.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Name.GetBuffer(Name.GetLength()));
BP+=sLen;
}
*((BYTE*)(szBuf+BP))=Sex;
BP++;
*((BYTE*)(szBuf+BP))=Canbeadd;
BP++;
*((DWORD*)(szBuf+BP))=PhotoId;
BP+=sizeof(DWORD);
sLen=Age.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Age.GetBuffer(Age.GetLength()));
BP+=sLen;
}
sLen=Country.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Country.GetBuffer(Country.GetLength()));
BP+=sLen;
}
sLen=Province.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Province.GetBuffer(Province.GetLength()));
BP+=sLen;
}
sLen=City.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,City.GetBuffer(City.GetLength()));
BP+=sLen;
}
sLen=Password.GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,Password.GetBuffer(Password.GetLength()));
BP+=sLen;
}
num=BP;
}
BOOL CMsgPerson::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Name=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
Sex=*((BYTE*)(szBuf+BP));
BP++;
Canbeadd=*((BYTE*)(szBuf+BP));
BP++;
PhotoId=*((DWORD*)(szBuf+BP));
BP+=sizeof(DWORD);
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Age=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Country=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Province=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
City=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>0&&BP+sLen<=num)
{
CString a(szBuf+BP,sLen);
Password=a;
BP+=sLen;
}
else if(sLen<0) return FALSE;
if(num==BP)return TRUE;
return FALSE;
}
//////////////////////////////////////////////////////////////////////
// CShowOnlinePeople Class
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CShowOnlinePeople::CShowOnlinePeople()
{
}
CShowOnlinePeople::~CShowOnlinePeople()
{
}
void CShowOnlinePeople::PackToBuf()
{
CData::PackToBuf();
WORD aNum=aId.GetSize();
*((WORD*)(szBuf+BP))=aNum;
BP+=sizeof(WORD);
for(int i=0;i<aNum;i++)
{
*((DWORD*)(szBuf+BP))=aPhotoId.GetAt(i);
BP+=sizeof(DWORD);
*((DWORD*)(szBuf+BP))=aId.GetAt(i);
BP+=sizeof(DWORD);
WORD sLen=aName[i].GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,aName[i].GetBuffer(aName[i].GetLength()));
BP+=sLen;
}
sLen=aCity[i].GetLength();
*((WORD*)(szBuf+BP))=sLen;
BP+=sizeof(WORD);
if(sLen>0)
{
strcpy(szBuf+BP,aCity[i].GetBuffer(aCity[i].GetLength()));
BP+=sLen;
}
}
num=BP;
}
BOOL CShowOnlinePeople::LoadFromBuf()
{
if(!CData::LoadFromBuf())return FALSE;
WORD aNum=0;
aNum=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(aNum>0)
{
aPhotoId.RemoveAll();
aId.RemoveAll();
aName.RemoveAll();
aCity.RemoveAll();
for(int i=0;i<aNum;i++)
{
aPhotoId.Add(*((DWORD*)(szBuf+BP)));
BP+=sizeof(DWORD);
aId.Add(*((DWORD*)(szBuf+BP)));
BP+=sizeof(DWORD);
WORD sLen;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>=0&&sLen<num)
{
CString a(szBuf+BP,sLen);
aName.Add(a);
BP+=sLen;
}
else if(sLen!=0) return FALSE;
sLen=*((WORD*)(szBuf+BP));
BP+=sizeof(WORD);
if(sLen>=0&&sLen<num)
{
CString a(szBuf+BP,sLen);
aCity.Add(a);
BP+=sLen;
}
else if(sLen!=0) return FALSE;
}
}
else if(aNum<0)return FALSE;
if(BP==num)return TRUE;
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -