亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sms.cpp

?? PPC開發(fā)的代碼
?? CPP
字號(hào):
#include "stdafx.h"
#include "MoblieX.h"
#include "sms.h"

CSMS::CSMS()
{
	memcpy( m_scaClass, "91", 3 );//短信中心號(hào)碼類型 一般為91
	memcpy( m_pduHeader, "11", 3 );//文件頭字節(jié)
	memcpy( m_tppid, "00", 3 );//協(xié)議標(biāo)識(shí) 00 = 短消息
	memcpy( m_callNoClass, "91", 3 );//被叫號(hào)碼類型
	memcpy( m_tpdcs, "08", 3 );//編碼類型 00 = 英文 08 = 中文
//	memcpy( m_tpdcs, "19", 3 );//編碼類型 00 = 英文 08 = 中文
	SetSCST();//設(shè)置時(shí)間標(biāo)記
	memcpy( m_hexBuf, "00", 3 );//供臨時(shí)使用
}

BOOL CSMS::Encode(CString &reStr)
{
CString oSCA;
CString oCallNo;
CString oSMS;

	EncodeStr( m_sms, oSMS );
	if( oSMS.GetLength() > 280 )
	{//信息太長(zhǎng)
		return FALSE;
	}

	EncodeNo( m_sca, oSCA );
	EncodeNo( m_callNo, oCallNo );

	m_pduLen = 0;
	reStr.Empty();

	if( oSCA.GetLength() > 0 )
	{
		reStr = ByteToHex( oSCA.GetLength()/2 + 1 );//短信中心長(zhǎng)度(字節(jié)), 包括號(hào)碼類別
		reStr += m_scaClass;//號(hào)碼類別
		reStr += oSCA;//短信中心號(hào)碼
	}
	else
	{
		reStr = "00";
	}

	reStr += m_pduHeader;//PDU文件頭字節(jié)
	reStr += "00";//一定要加上, 表示這是短信
	reStr += ByteToHex( m_callNo.GetLength() );//被叫號(hào)碼長(zhǎng)度(數(shù)位), 不包括號(hào)碼類別 
	m_pduLen += 3;

	if( m_callNo.GetLength() > 0 )
	{
		reStr += m_callNoClass;//被叫號(hào)碼類別
		reStr += oCallNo;//被叫號(hào)碼
		m_pduLen += oCallNo.GetLength() / 2 + 1;
	}
	reStr += m_tppid;//協(xié)議標(biāo)識(shí)
	reStr += m_tpdcs;//編碼方式
//	reStr += m_tpscst;//時(shí)間標(biāo)識(shí), 只在接收信息中使用
	reStr += "AA";//有效期
	m_pduLen += 3;

	reStr += ByteToHex( oSMS.GetLength()/2 );//短信長(zhǎng)度(字節(jié)), 這個(gè)設(shè)置最后一個(gè)字亂碼
	reStr += oSMS;
	m_pduLen += oSMS.GetLength() / 2 + 1;

	return TRUE;
}

BOOL CSMS::Decode(const char *orgSMS)
{
char * pV;
char sHex[3];
int scaLen, callNoLen, udLen;
CString sBuf;

	sHex[2] = '\0';

	//取短信中心號(hào)長(zhǎng)度
	pV = (char*)orgSMS;
	sHex[0] = pV[0];
	sHex[1] = pV[1];
	pV += 2;
	scaLen = HexToByte( sHex );
	if( scaLen > 0 )
	{//取短信中心號(hào)碼及類型
		m_scaClass[0] = pV[0];
		m_scaClass[1] = pV[1];
		pV += 2;

		scaLen = (scaLen-1)*2;//字節(jié)數(shù)轉(zhuǎn)為數(shù)字位數(shù), 去掉類型字節(jié)
		memcpy( sBuf.GetBufferSetLength( scaLen ), pV, scaLen );
		sBuf.ReleaseBuffer( scaLen );
		DecodeNo( sBuf, m_sca );
		pV += scaLen;
	}

	//pdu文件頭字節(jié)
	m_pduHeader[0] = pV[0];
	m_pduHeader[1] = pV[1];
	pV += 2;

	switch( HexToByte( m_pduHeader ) )
	{
	case 0x11:
		pV += 2;//跳過一個(gè)不需要處理的字節(jié), 可能是FF
		break;
	case 0x00:
	case 0x04:
	case 0x24:
		break;
	default://暫不能解
		m_sms = "Unknow pduHeader: ";
		m_sms += m_pduHeader;
		return FALSE;
	}

	//取被叫號(hào)碼長(zhǎng)度
	sHex[0] = pV[0];
	sHex[1] = pV[1];
	pV += 2;
	callNoLen = HexToByte( sHex );
	if( callNoLen > 0 )
	{//取被叫號(hào)碼及類型
		m_callNoClass[0] = pV[0];
		m_callNoClass[1] = pV[1];
		pV += 2;

		if( callNoLen & 0x01 )
		{//數(shù)字位數(shù)如果為奇數(shù), 要補(bǔ)一位
			callNoLen++;
		}
		memcpy( sBuf.GetBufferSetLength( callNoLen ), pV, callNoLen );
		sBuf.ReleaseBuffer( callNoLen );
		DecodeNo( sBuf, m_callNo );
		pV += callNoLen;
	}

	//取tppid
	m_tppid[0] = pV[0];
	m_tppid[1] = pV[1];
	pV += 2;

	//取tpdcs
	m_tpdcs[0] = pV[0];
	m_tpdcs[1] = pV[1];
	pV += 2;
	if( strcmp( m_tpdcs, "08" ) != 0
	 && strcmp( m_tpdcs, "19" ) != 0 )
	{//未知的格式
		m_sms = "Unknow dcs: ";
		m_sms += m_tpdcs;
		return FALSE;
	}

	//取時(shí)間
	if( pV[0] == 'A' && pV[1] == 'A' )
	{
		memset( m_tpscst, 0, 14 );
		pV += 2;
	}
	else if( *pV > '9' )
	{//不是有效的時(shí)間
		m_sms = "Unknow scst: ";
		m_sms += pV;
		return FALSE;
	}
	else
	{
		memcpy( m_tpscst, pV, 14 );
		ExchangHighLow( m_tpscst, 14 );
		pV += 14;
	}

	//取UDL
	sHex[0] = pV[0];
	sHex[1] = pV[1];
	pV += 2;
	udLen = HexToByte( sHex );
	if( udLen < 1 )
	{//沒有正文
		m_sms.Empty();
		return TRUE;
	}

	//取UD
	udLen *= 2;//計(jì)算字?jǐn)?shù)
	memcpy( sBuf.GetBufferSetLength( udLen ), pV, udLen );
	sBuf.ReleaseBuffer( udLen );
	DecodeStr( sBuf, m_sms );
	pV += udLen;

	return TRUE;
}

unsigned char CSMS::HexToByte(const char *sHex)
{
char * p;
	return (unsigned char)strtoul( sHex, &p, 16 );
}

const char * CSMS::ByteToHex(unsigned char val)
{
unsigned char v;
	v = (val & 0xF0) >> 4;
	if( v < 10 )
	{
		m_hexBuf[0] = '0' + v;
	}
	else
	{
		m_hexBuf[0] = 'A' + (v - 10);
	}
	v = val & 0x0F;
	if( v < 10 )
	{
		m_hexBuf[1] = '0' + v;
	}
	else
	{
		m_hexBuf[1] = 'A' + (v - 10);
	}
	return m_hexBuf;
}

BOOL CSMS::EncodeNo(const char *pS1, CString &s2)
{
//將pS1的奇偶位交換后放到s2中, 如果pS1長(zhǎng)度為奇數(shù), 則最后一位補(bǔ) 'F' 后再交換
int size;
char * pS2;
BOOL AddF = FALSE;

	size = strlen( pS1 );
	if( size <= 0 )
	{
		s2.Empty();
		return TRUE;
	}

	if( size & 0x01 )
	{//奇數(shù)號(hào)碼, 要加1
		size++;
		AddF = TRUE;
	}
	pS2 = s2.GetBufferSetLength( size );
	memcpy( pS2, pS1, size );
	if( AddF )
	{
		pS2[size-1] = 'F';
	}
	ExchangHighLow( pS2, size );
	s2.ReleaseBuffer( size );
	return TRUE;
}

BOOL CSMS::DecodeNo(const char *pS1, CString &s2)
{
//將pS1的奇偶位交換后放到s2中, 如果s2最后一位為 'F' 則刪除
int size;
char * pS2;

	size = strlen( pS1 );
	if( size <= 0 )
	{
		s2.Empty();
		return FALSE;
	}
	
	pS2 = s2.GetBufferSetLength( size );
	memcpy( pS2, pS1, size );
	ExchangHighLow( pS2, size );
	s2.ReleaseBuffer( size );
	s2.MakeUpper();
	s2.Remove( 'F' );
	return TRUE;
}

BOOL CSMS::DecodeStr(const char *pS1, CString &s2)
{
int i, s1Size, wSize, mSize;
CString s;
char *pS;
char sHex[3];

	s1Size = strlen( pS1 );
	wSize = s1Size / 2;//w字串所需的字節(jié)數(shù), 不是W字?jǐn)?shù)
	pS = s.GetBufferSetLength( wSize );

	sHex[2] = '\0';
	for( i = 0; i < wSize; i++ )
	{
		sHex[0] = pS1[i*2];
		sHex[1] = pS1[i*2+1];
		pS[i] = HexToByte( sHex );
	}
	ExchangHighLow( pS, wSize );
	mSize = WideCharToMultiByte(
		936, WC_COMPOSITECHECK,
		(wchar_t*)pS, wSize/2,
		s2.GetBufferSetLength(wSize), wSize,
		NULL, NULL );
	s2.ReleaseBuffer( mSize );
	s.ReleaseBuffer( 0 );

	return TRUE;
}

BOOL CSMS::EncodeStr(const char *pS1, CString &s2)
{
int i, s1Size, wSize;
CString s;
char *pS;

	s1Size = strlen( pS1 );
	pS = s.GetBufferSetLength( s1Size*2 );
	wSize = MultiByteToWideChar( 936, MB_COMPOSITE, pS1, s1Size, (wchar_t*)pS, s1Size*2 );

	s2.Empty();
	for( i = 0; i < wSize*2; i+=2 )
	{
		s2 += ByteToHex( pS[i+1] );
		s2 += ByteToHex( pS[i] );
	}
	s.ReleaseBuffer( 0 );
	return TRUE;
}

void CSMS::SetSCST()
{
COleDateTime ct;
CString buf;

	ct = COleDateTime::GetCurrentTime();
	buf = ct.Format( "%y%m%d%H%M%S08" );// YYMMDDhhmmss08
	memcpy( m_tpscst, buf, 15 );
	ExchangHighLow( m_tpscst, 14 );
}

void CSMS::ExchangHighLow(char *pData, int dataLen)
{
int i;
char b;
	dataLen = dataLen & 0xFFFFFFFE;//去掉最低位, 保證為偶數(shù)
	for( i = 0; i < dataLen; i+=2 )
	{
		b = pData[i];
		pData[i] = pData[i+1];
		pData[i+1] = b;
	}
}


BOOL CSMS::GetFormatedSCST( CString & scst )
{
int i, j;
	scst = "00-00-00 00:00:00";

	for( i = 0, j = 0; i < 12; i++, j++ )
	{
		scst.SetAt( j, m_tpscst[i] );
		if( i & 0x01 )
		{
			j++;
		}
	}
	return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文综合久久牛| 色狠狠一区二区三区香蕉| 综合电影一区二区三区 | 色欧美88888久久久久久影院| 国产精品自产自拍| 韩国三级电影一区二区| 九九精品视频在线看| 久久成人18免费观看| 看电影不卡的网站| 国产精品一区二区在线观看网站 | 日韩理论片中文av| 亚洲色图.com| 亚洲国产精品久久人人爱| 日韩精品一区第一页| 狠狠网亚洲精品| 99久久精品99国产精品| 欧洲精品在线观看| 欧美一区二区在线不卡| 久久天天做天天爱综合色| 国产色一区二区| 亚洲一区二区三区小说| 看电影不卡的网站| 国产成人亚洲综合a∨猫咪| av在线不卡网| 日韩午夜中文字幕| 亚洲人精品午夜| 日韩一区精品视频| 成人av在线播放网站| 欧美群妇大交群中文字幕| 国产亚洲欧洲997久久综合 | 亚洲成人激情社区| 紧缚奴在线一区二区三区| 99精品欧美一区二区蜜桃免费| 在线免费av一区| 久久综合国产精品| 亚洲午夜三级在线| 国产乱人伦偷精品视频免下载| 日本精品一区二区三区高清| 亚洲精品一区二区三区99| 亚洲免费电影在线| 国产河南妇女毛片精品久久久| 91福利国产成人精品照片| 日韩免费观看2025年上映的电影| 中文字幕一区二区三区在线不卡 | 欧美成人乱码一区二区三区| 中文字幕日韩av资源站| 国内外成人在线视频| 欧美性大战久久久| 国产精品国产三级国产三级人妇| 日产欧产美韩系列久久99| 99精品黄色片免费大全| 久久久亚洲欧洲日产国码αv| 一卡二卡三卡日韩欧美| 国产盗摄女厕一区二区三区 | 激情欧美一区二区| 欧美高清视频一二三区| 一区二区三区蜜桃网| 粉嫩一区二区三区性色av| 欧美一级视频精品观看| 三级欧美在线一区| 欧美在线观看18| 亚洲婷婷在线视频| 91蜜桃在线观看| 国产精品美女久久久久久久久久久 | 狠狠色丁香久久婷婷综合丁香| 欧美在线观看一二区| 一区二区在线观看免费视频播放| 夫妻av一区二区| 国产调教视频一区| 国产精品99久久久| 国产欧美1区2区3区| 国产在线一区二区综合免费视频| 欧美一区二区三区男人的天堂 | 日韩欧美视频在线| 日本免费新一区视频| 日韩视频不卡中文| 免费看黄色91| 日韩欧美亚洲一区二区| 久久精品国产久精国产| www一区二区| 成人精品gif动图一区| 久久久99精品免费观看| 丁香天五香天堂综合| 国产精品欧美经典| 欧美亚洲国产一区二区三区 | 亚洲精品一区在线观看| 国产欧美一区二区精品性| 日韩欧美中文字幕制服| 亚洲女人的天堂| 国产一区二区福利视频| 日韩三级精品电影久久久| 国产农村妇女毛片精品久久麻豆 | 粉嫩av一区二区三区粉嫩| 国产色产综合色产在线视频| 国产精品一区不卡| 亚洲精品五月天| 欧美日韩精品综合在线| 精品一二三四在线| 成人免费在线观看入口| 欧美三级中文字| 捆绑调教美女网站视频一区| 国产亚洲自拍一区| 91国偷自产一区二区开放时间| 亚洲国产成人va在线观看天堂| 日韩午夜在线影院| 色一情一伦一子一伦一区| 美女视频网站久久| 色哟哟日韩精品| 亚洲国产精品久久人人爱| 日韩亚洲欧美高清| 色噜噜夜夜夜综合网| 免费成人美女在线观看.| 国产精品情趣视频| 日韩一区二区在线免费观看| 波多野结衣中文一区| 麻豆精品在线观看| 亚洲欧美日韩精品久久久久| 精品国产一区二区三区不卡| 色综合色综合色综合| 精品无人码麻豆乱码1区2区| 亚洲香肠在线观看| 欧美激情一区二区三区不卡| 欧美精品乱码久久久久久| www.日韩av| 国产精品资源在线| 青青草成人在线观看| 亚洲午夜精品久久久久久久久| 久久精品视频在线免费观看| 欧美一级二级在线观看| 欧美亚洲国产一区二区三区va| 成人av免费在线| 丁香啪啪综合成人亚洲小说| 美国欧美日韩国产在线播放| 亚洲一区二区综合| 亚洲丝袜精品丝袜在线| 国产日韩欧美一区二区三区乱码| 欧美精品国产精品| 精品1区2区3区| 欧美性高清videossexo| 色综合久久久久久久久久久| 成人av在线看| av男人天堂一区| 99久久精品国产精品久久| 国产乱一区二区| 国产超碰在线一区| 大尺度一区二区| 岛国av在线一区| 成人午夜在线播放| 99久久综合99久久综合网站| 国产成人精品1024| 成人的网站免费观看| 成人av电影免费在线播放| 国产精品99久久不卡二区| 国产精品伊人色| 成人涩涩免费视频| 99久久综合国产精品| 色噜噜夜夜夜综合网| 欧美日韩国产一级| 欧美一区二区免费观在线| 精品国产一区a| 欧美激情一区二区在线| 中文字幕亚洲一区二区av在线 | 亚洲国产一区二区三区| 天天综合日日夜夜精品| 免费成人在线观看视频| 国产精品一二三四| 成+人+亚洲+综合天堂| 欧洲激情一区二区| 制服丝袜日韩国产| 久久久亚洲精品一区二区三区| 国产精品全国免费观看高清| 亚洲精品亚洲人成人网| 美女免费视频一区| 成人激情综合网站| 在线精品视频免费播放| 91精品国产91久久综合桃花| 久久精品亚洲国产奇米99| 亚洲欧美另类图片小说| 视频一区二区三区中文字幕| 国产福利一区二区三区视频| 97se亚洲国产综合自在线观| 欧美日本乱大交xxxxx| 国产日产欧美精品一区二区三区| 亚洲免费高清视频在线| 久久99国内精品| 色8久久精品久久久久久蜜 | jlzzjlzz亚洲女人18| 日本亚洲三级在线| 国产成人精品免费看| 欧美视频完全免费看| 久久久久久久久99精品| 亚洲精品高清视频在线观看| 久久精品国产精品青草| av亚洲精华国产精华| 精品免费视频.| 亚洲一区二区影院| 国产精品一区在线观看乱码| 欧美精品色综合| 亚洲精品免费在线播放| 极品少妇xxxx精品少妇偷拍|