⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myframe.cpp

📁 一个通讯管理机的源代码。比较好用。推荐
💻 CPP
字号:
#include "myframe.h"CMyFrame::CMyFrame(void){}CMyFrame::~CMyFrame(void){}bool CMyFrame::FrameToBuffer(CDataNode &dn){	bool bRet = false;	if(m_bIsSetup) 	{ 		dn.SetSize(GetSize());		WORD wDataSize = GetDataSize();			WORD* pw = (WORD *)dn.m_pbyData;		*pw++ = 0xeb90;		*pw++ = 0xeb90;		*pw++ = wDataSize + 1;//data length + cid		BYTE* pbyTemp = (BYTE *)pw;		*pbyTemp++ = m_byCID;		if (wDataSize)			memcpy(pbyTemp,m_pData,wDataSize);		pbyTemp += wDataSize;		*pbyTemp = 0x16;//tail		bRet = true;	} 	return bRet;}void CMyFrame::SetupFrame(CFrameNode *pFNSend){	if (pFNSend->m_pbyData && pFNSend->m_wSize)	{		m_wLength = pFNSend->m_wSize;		memcpy(m_pData,pFNSend->m_pbyData,pFNSend->m_wSize);	}	else m_wLength = 0;	m_byCID = pFNSend->m_byCID;	m_bIsSetup = true;}void CMyFrame::FrameToBuf(CFrameNode& fn){	fn.m_byCID = m_byCID;	if (m_wLength)	{		fn.SetSize(m_wLength);		memcpy(fn.m_pbyData,m_pData,m_wLength);	}}bool CMyFrame::BufferToFrame(CDQue* pPhyDQ){	Reset();	CDataNode *pDN = NULL;	bool bRet = false;	while (pPhyDQ->Get(pDN) && pDN)	{		if (m_wInLength + pDN->m_wSize > 1008){ delete pDN; break;}		memcpy(&m_pbyInBuf[m_wInLength],pDN->m_pbyData,pDN->m_wSize);		m_wInLength += pDN->m_wSize;//		TRACE("<%02x> ",pDN->m_pbyData[0]);		delete pDN;		if (m_wInLength>=8)		{			WORD* pw = (WORD *)&m_pbyInBuf[0];			if ((*pw++ != 0xeb90) || (*pw++ != 0xeb90))				break;			else if ((*pw + 7) == m_wInLength) 			{				BYTE* pby = &m_pbyInBuf[m_wInLength-1];					if (*pby == 0x16)					bRet = true;				break;			}		}	}	if (bRet)	{		WORD* pwTemp = (WORD *)m_pbyInBuf;		pwTemp +=2;		m_wLength = *pwTemp++ - 1;		BYTE* pTemp = (BYTE *)pwTemp;		m_byCID = *pTemp++;			if (m_wLength)			memcpy(m_pData,pTemp,m_wLength);	}	return bRet;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -