_mbreport.cpp

来自「这是江苏企业通讯协议(联通版本)的一个Release」· C++ 代码 · 共 85 行

CPP
85
字号
// _MBREPORT.cpp: implementation of the C_MBREPORT class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "_MBREPORT.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

EMSP2_0::C_MBREPORT::C_MBREPORT()
{

}

EMSP2_0::C_MBREPORT::~C_MBREPORT()
{

}

 char* EMSP2_0::C_MBREPORT::getBytes()
{
 char b4[4];
           memcpy(b4,&mb.ClientSeq1,4);
		   int cur=0;
		   for(int i=0;i<4;i++)
		   {
			   result[cur]=b4[i];
			   cur++;
		   }
		   memcpy(b4,&mb.ClientSeq2,4);
		  
		   for( int i=0;i<4;i++)
		   {
			   result[cur]=b4[i];
			   cur++;
		   }
		   int uLen=mb.UserNumber.size();
		   char* bu=new char[uLen];
		   memcpy(bu,mb.UserNumber.c_str(),uLen);
		   for(int i=0;i<uLen;i++)
		   {
			   result[cur]=bu[i];
			   cur++;
		   }
		   delete[] bu;
		   result[cur]=0;
		   cur++;
		   result[cur]=mb.State;
		   cur++;
		   result[cur]=mb.ErrCode;
		   cur++;
		   return result;
}

void EMSP2_0::C_MBREPORT::TransFromchars(char *chars, int len)
{
char b4[4];
	  int cur=0;
	  for(int i=0;i<4;i++)
	  {
        b4[i]=chars[cur];
		cur++;
	  }
	  memcpy(&mb.ClientSeq1,b4,4);
	   for( int i=0;i<4;i++)
	  {
        b4[i]=chars[cur];
		cur++;
	  }
	  memcpy(&mb.ClientSeq2,b4,4);
	  int it=cur;
	  for(int i=it;(i<len-2)&&(chars[cur]!=0);i++)
	  {
		  mb.UserNumber+=chars[cur];
		  cur++;
	  }
	  cur++;
	  mb.State=chars[cur];
	  cur++;
	  mb.ErrCode=chars[cur];

}

⌨️ 快捷键说明

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