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

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

?? sms.cpp

?? 可實(shí)現(xiàn)接收和發(fā)送短信息
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "stdafx.h"
#include "Sms.h"
#include "Comm.h"
extern g_index;
extern strNumber;
extern strContent;
// 可打印字符串轉(zhuǎn)換為字節(jié)數(shù)據(jù)
// 如:"C8329BFD0E01" --> {0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} 
// pSrc: 源字符串指針
// pDst: 目標(biāo)數(shù)據(jù)指針
// nSrcLength: 源字符串長(zhǎng)度
// 返回: 目標(biāo)數(shù)據(jù)長(zhǎng)度
int gsmString2Bytes(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
	for(int i=0; i<nSrcLength; i+=2)
	{
		// 輸出高4位
		if(*pSrc>='0' && *pSrc<='9')
		{
			*pDst = (*pSrc - '0') << 4;
		}
		else
		{
			*pDst = (*pSrc - 'A' + 10) << 4;
		}
		
		pSrc++;
		
		// 輸出低4位
		if(*pSrc>='0' && *pSrc<='9')
		{
			*pDst |= *pSrc - '0';
		}
		else
		{
			*pDst |= *pSrc - 'A' + 10;
		}
		
		pSrc++;
		pDst++;
	}
	
	// 返回目標(biāo)數(shù)據(jù)長(zhǎng)度
	return nSrcLength / 2;
}

// 字節(jié)數(shù)據(jù)轉(zhuǎn)換為可打印字符串
// 如:{0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} --> "C8329BFD0E01" 
// pSrc: 源數(shù)據(jù)指針
// pDst: 目標(biāo)字符串指針
// nSrcLength: 源數(shù)據(jù)長(zhǎng)度
// 返回: 目標(biāo)字符串長(zhǎng)度
int gsmBytes2String(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
	const char tab[]="0123456789ABCDEF";	// 0x0-0xf的字符查找表
	
	for(int i=0; i<nSrcLength; i++)
	{
		*pDst++ = tab[*pSrc >> 4];		// 輸出低4位
		*pDst++ = tab[*pSrc & 0x0f];	// 輸出高4位
		pSrc++;
	}
	
	// 輸出字符串加個(gè)結(jié)束符
	*pDst = '\0';
	
	// 返回目標(biāo)字符串長(zhǎng)度
	return nSrcLength * 2;
}

// 7bit編碼
// pSrc: 源字符串指針
// pDst: 目標(biāo)編碼串指針
// nSrcLength: 源字符串長(zhǎng)度
// 返回: 目標(biāo)編碼串長(zhǎng)度
int gsmEncode7bit(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
	int nSrc;		// 源字符串的計(jì)數(shù)值
	int nDst;		// 目標(biāo)編碼串的計(jì)數(shù)值
	int nChar;		// 當(dāng)前正在處理的組內(nèi)字符字節(jié)的序號(hào),范圍是0-7
	unsigned char nLeft;	// 上一字節(jié)殘余的數(shù)據(jù)
	
	// 計(jì)數(shù)值初始化
	nSrc = 0;
	nDst = 0;
	
	// 將源串每8個(gè)字節(jié)分為一組,壓縮成7個(gè)字節(jié)
	// 循環(huán)該處理過(guò)程,直至源串被處理完
	// 如果分組不到8字節(jié),也能正確處理
	while(nSrc<nSrcLength)
	{
		// 取源字符串的計(jì)數(shù)值的最低3位
		nChar = nSrc & 7;
		
		// 處理源串的每個(gè)字節(jié)
		if(nChar == 0)
		{
			// 組內(nèi)第一個(gè)字節(jié),只是保存起來(lái),待處理下一個(gè)字節(jié)時(shí)使用
			nLeft = *pSrc;
		}
		else
		{
			// 組內(nèi)其它字節(jié),將其右邊部分與殘余數(shù)據(jù)相加,得到一個(gè)目標(biāo)編碼字節(jié)
			*pDst = (*pSrc << (8-nChar)) | nLeft;
			
			// 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來(lái)
			nLeft = *pSrc >> nChar;
			
			// 修改目標(biāo)串的指針和計(jì)數(shù)值
			pDst++;
			nDst++;
		}
		
		// 修改源串的指針和計(jì)數(shù)值
		pSrc++;
		nSrc++;
	}
	
	// 返回目標(biāo)串長(zhǎng)度
	return nDst;
}

// 7bit解碼
// pSrc: 源編碼串指針
// pDst: 目標(biāo)字符串指針
// nSrcLength: 源編碼串長(zhǎng)度
// 返回: 目標(biāo)字符串長(zhǎng)度
int gsmDecode7bit(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
	int nSrc;		// 源字符串的計(jì)數(shù)值
	int nDst;		// 目標(biāo)解碼串的計(jì)數(shù)值
	int nByte;		// 當(dāng)前正在處理的組內(nèi)字節(jié)的序號(hào),范圍是0-6
	unsigned char nLeft;	// 上一字節(jié)殘余的數(shù)據(jù)
	
	// 計(jì)數(shù)值初始化
	nSrc = 0;
	nDst = 0;
	
	// 組內(nèi)字節(jié)序號(hào)和殘余數(shù)據(jù)初始化
	nByte = 0;
	nLeft = 0;
	
	// 將源數(shù)據(jù)每7個(gè)字節(jié)分為一組,解壓縮成8個(gè)字節(jié)
	// 循環(huán)該處理過(guò)程,直至源數(shù)據(jù)被處理完
	// 如果分組不到7字節(jié),也能正確處理
	while(nSrc<nSrcLength)
	{
		// 將源字節(jié)右邊部分與殘余數(shù)據(jù)相加,去掉最高位,得到一個(gè)目標(biāo)解碼字節(jié)
		*pDst = ((*pSrc << nByte) | nLeft) & 0x7f;
		
		// 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來(lái)
		nLeft = *pSrc >> (7-nByte);
		
		// 修改目標(biāo)串的指針和計(jì)數(shù)值
		pDst++;
		nDst++;
		
		// 修改字節(jié)計(jì)數(shù)值
		nByte++;
		
		// 到了一組的最后一個(gè)字節(jié)
		if(nByte == 7)
		{
			// 額外得到一個(gè)目標(biāo)解碼字節(jié)
			*pDst = nLeft;
			
			// 修改目標(biāo)串的指針和計(jì)數(shù)值
			pDst++;
			nDst++;
			
			// 組內(nèi)字節(jié)序號(hào)和殘余數(shù)據(jù)初始化
			nByte = 0;
			nLeft = 0;
		}
		
		// 修改源串的指針和計(jì)數(shù)值
		pSrc++;
		nSrc++;
	}
	
	// 輸出字符串加個(gè)結(jié)束符
	*pDst = '\0';
	
	// 返回目標(biāo)串長(zhǎng)度
	return nDst;
}

// 8bit編碼
// pSrc: 源字符串指針
// pDst: 目標(biāo)編碼串指針
// nSrcLength: 源字符串長(zhǎng)度
// 返回: 目標(biāo)編碼串長(zhǎng)度
int gsmEncode8bit(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
	// 簡(jiǎn)單復(fù)制
	memcpy(pDst, pSrc, nSrcLength);
	
	return nSrcLength;
}

// 8bit解碼
// pSrc: 源編碼串指針
// pDst: 目標(biāo)字符串指針
// nSrcLength: 源編碼串長(zhǎng)度
// 返回: 目標(biāo)字符串長(zhǎng)度
int gsmDecode8bit(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
	// 簡(jiǎn)單復(fù)制
	memcpy(pDst, pSrc, nSrcLength);
	
	// 輸出字符串加個(gè)結(jié)束符
	*pDst = '\0';
	
	return nSrcLength;
}

// UCS2編碼
// pSrc: 源字符串指針
// pDst: 目標(biāo)編碼串指針
// nSrcLength: 源字符串長(zhǎng)度
// 返回: 目標(biāo)編碼串長(zhǎng)度
int gsmEncodeUcs2(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
	int nDstLength;		// UNICODE寬字符數(shù)目
	WCHAR wchar[128];	// UNICODE串緩沖區(qū)
	
	// 字符串-->UNICODE串
	nDstLength = ::MultiByteToWideChar(CP_ACP, 0, pSrc, nSrcLength, wchar, 128);
	
	// 高低字節(jié)對(duì)調(diào),輸出
	for(int i=0; i<nDstLength; i++)
	{
		*pDst++ = wchar[i] >> 8;		// 先輸出高位字節(jié)
		*pDst++ = wchar[i] & 0xff;		// 后輸出低位字節(jié)
	}
	
	// 返回目標(biāo)編碼串長(zhǎng)度
	return nDstLength * 2;
}

// UCS2解碼
// pSrc: 源編碼串指針
// pDst: 目標(biāo)字符串指針
// nSrcLength: 源編碼串長(zhǎng)度
// 返回: 目標(biāo)字符串長(zhǎng)度
int gsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
	int nDstLength;		// UNICODE寬字符數(shù)目
	WCHAR wchar[128];	// UNICODE串緩沖區(qū)
	
	// 高低字節(jié)對(duì)調(diào),拼成UNICODE
	for(int i=0; i<nSrcLength/2; i++)
	{
		wchar[i] = *pSrc++ << 8;	// 先高位字節(jié)
		wchar[i] |= *pSrc++;		// 后低位字節(jié)
	}
	
	// UNICODE串-->字符串
	nDstLength = ::WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL);
	
	// 輸出字符串加個(gè)結(jié)束符
	pDst[nDstLength] = '\0';
	
	// 返回目標(biāo)字符串長(zhǎng)度
	return nDstLength;
}

// 正常順序的字符串轉(zhuǎn)換為兩兩顛倒的字符串,若長(zhǎng)度為奇數(shù),補(bǔ)'F'湊成偶數(shù)
// 如:"8613851872468" --> "683158812764F8"
// pSrc: 源字符串指針
// pDst: 目標(biāo)字符串指針
// nSrcLength: 源字符串長(zhǎng)度
// 返回: 目標(biāo)字符串長(zhǎng)度
int gsmInvertNumbers(const char* pSrc, char* pDst, int nSrcLength)
{
	int nDstLength;		// 目標(biāo)字符串長(zhǎng)度
	char ch;			// 用于保存一個(gè)字符
	
	// 復(fù)制串長(zhǎng)度
	nDstLength = nSrcLength;
	
	// 兩兩顛倒
	for(int i=0; i<nSrcLength;i+=2)
	{
		ch = *pSrc++;		// 保存先出現(xiàn)的字符
		*pDst++ = *pSrc++;	// 復(fù)制后出現(xiàn)的字符
		*pDst++ = ch;		// 復(fù)制先出現(xiàn)的字符
	}
	
	// 源串長(zhǎng)度是奇數(shù)嗎?
	if(nSrcLength & 1)
	{
		*(pDst-2) = 'F';	// 補(bǔ)'F'
		nDstLength++;		// 目標(biāo)串長(zhǎng)度加1
	}
	
	// 輸出字符串加個(gè)結(jié)束符
	*pDst = '\0';
	
	// 返回目標(biāo)字符串長(zhǎng)度
	return nDstLength;
}

// 兩兩顛倒的字符串轉(zhuǎn)換為正常順序的字符串
// 如:"683158812764F8" --> "8613851872468"
// pSrc: 源字符串指針
// pDst: 目標(biāo)字符串指針
// nSrcLength: 源字符串長(zhǎng)度
// 返回: 目標(biāo)字符串長(zhǎng)度
int gsmSerializeNumbers(const char* pSrc, char* pDst, int nSrcLength)
{
	int nDstLength;		// 目標(biāo)字符串長(zhǎng)度
	char ch;			// 用于保存一個(gè)字符
	
	// 復(fù)制串長(zhǎng)度
	nDstLength = nSrcLength;
	
	// 兩兩顛倒
	for(int i=0; i<nSrcLength;i+=2)
	{
		ch = *pSrc++;		// 保存先出現(xiàn)的字符
		*pDst++ = *pSrc++;	// 復(fù)制后出現(xiàn)的字符
		*pDst++ = ch;		// 復(fù)制先出現(xiàn)的字符
	}
	
	// 最后的字符是'F'嗎?
	if(*(pDst-1) == 'F')
	{
		pDst--;
		nDstLength--;		// 目標(biāo)字符串長(zhǎng)度減1
	}
	
	// 輸出字符串加個(gè)結(jié)束符
	*pDst = '\0';
	
	// 返回目標(biāo)字符串長(zhǎng)度
	return nDstLength;
}

// PDU編碼,用于編制、發(fā)送短消息
// pSrc: 源PDU參數(shù)指針
// pDst: 目標(biāo)PDU串指針
// 返回: 目標(biāo)PDU串長(zhǎng)度
int gsmEncodePdu(const SM_PARAM* pSrc, char* pDst)
{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777色狠狠一区二区三区| 欧美一区二区三区在线视频| 视频在线观看一区| 欧美高清在线精品一区| 日韩一区二区精品| 色综合久久久网| 国产精品自拍在线| 一区二区三区在线免费观看| 2023国产精华国产精品| 在线不卡欧美精品一区二区三区| 国产精品一区二区你懂的| 天天色综合成人网| 亚洲制服丝袜在线| 亚洲欧美成人一区二区三区| 精品国产乱码久久久久久蜜臀| 欧洲精品一区二区三区在线观看| 国产成人日日夜夜| 九九热在线视频观看这里只有精品| 亚洲国产一区二区在线播放| 国产精品久久久久9999吃药| 久久婷婷久久一区二区三区| 日韩亚洲欧美一区| 欧美丰满嫩嫩电影| 欧美精品久久久久久久多人混战| 精品国产三级电影在线观看| 欧美另类久久久品| 欧美日韩一区二区三区视频 | 粉嫩aⅴ一区二区三区四区五区| 奇米精品一区二区三区在线观看| 亚洲午夜精品久久久久久久久| 综合中文字幕亚洲| 亚洲乱码中文字幕综合| 国产精品国产三级国产普通话蜜臀 | 欧美日本高清视频在线观看| 日本道精品一区二区三区| 成人福利电影精品一区二区在线观看| 国产精品小仙女| 国产成人在线观看| 国产成人欧美日韩在线电影| 国产成人在线免费观看| 成人美女在线观看| 成人av在线影院| 色综合欧美在线视频区| 欧美这里有精品| 欧美三级日韩三级| 欧美一区二区三区四区五区| 日韩欧美在线123| 欧美mv和日韩mv的网站| 久久免费偷拍视频| 国产免费久久精品| 中文字幕在线不卡视频| 亚洲欧美日韩系列| 午夜精品福利一区二区蜜股av | 亚洲伦理在线精品| 亚洲国产精品一区二区尤物区| 肉丝袜脚交视频一区二区| 免费成人小视频| 成人永久aaa| 97精品久久久久中文字幕| 日本精品一区二区三区高清 | 一区二区成人在线| 日本一区中文字幕| 国产露脸91国语对白| 成人高清在线视频| 欧美日韩一区二区在线视频| 日韩丝袜情趣美女图片| 久久九九全国免费| 一区二区三区.www| 蜜桃在线一区二区三区| 丁香桃色午夜亚洲一区二区三区| 91小视频在线| 欧美一二区视频| 国产精品色哟哟| 五月综合激情网| 国产成人在线视频网站| 欧美三级在线看| 日本一区二区三区久久久久久久久不 | 99麻豆久久久国产精品免费 | 美女国产一区二区| 成人99免费视频| 欧美一级片在线| 中文字幕av一区二区三区免费看| 一区二区在线观看免费视频播放| 免费的成人av| 日本韩国欧美一区二区三区| 日韩一区和二区| 亚洲精品国产成人久久av盗摄| 久久电影网站中文字幕| 欧美疯狂做受xxxx富婆| 久久影院视频免费| 99精品久久免费看蜜臀剧情介绍| 欧美视频一区二区三区四区| 久久久噜噜噜久久人人看| 国产精品国产a| 亚洲图片自拍偷拍| 懂色av一区二区三区免费看| 91.com视频| 亚洲激情网站免费观看| 国产毛片精品一区| 欧美老肥妇做.爰bbww| 亚洲欧洲韩国日本视频| 国产黄人亚洲片| 日韩欧美在线综合网| 亚洲福中文字幕伊人影院| 不卡一二三区首页| 久久先锋资源网| 乱一区二区av| 欧美疯狂性受xxxxx喷水图片| 国产精品福利一区二区三区| 激情综合色播激情啊| 在线不卡免费欧美| 亚洲一区二区三区自拍| a4yy欧美一区二区三区| 国产三级精品三级| 国产一区二区三区精品视频| 欧美一区永久视频免费观看| 亚洲综合自拍偷拍| 91亚洲国产成人精品一区二三| 国产欧美综合色| 国产一区二区日韩精品| 日韩一区二区在线观看视频 | 日韩综合小视频| 日本二三区不卡| 亚洲免费观看高清| 99re6这里只有精品视频在线观看| 国产婷婷色一区二区三区四区| 久久精品国产网站| 精品入口麻豆88视频| 男女激情视频一区| 日韩一区二区麻豆国产| 男男gaygay亚洲| 日韩一区二区免费高清| 免费看欧美女人艹b| 在线成人av网站| 久久精品国产亚洲高清剧情介绍| 日韩一区二区三区在线视频| 麻豆91在线播放| 日韩精品在线一区二区| 久久精品免费观看| 欧美www视频| 国产在线麻豆精品观看| 久久久精品国产免费观看同学| 国产精品一区三区| 国产精品嫩草久久久久| 北条麻妃国产九九精品视频| 中文字幕一区二区视频| 91网上在线视频| 亚洲一二三区在线观看| 欧美精品久久一区| 韩国欧美国产一区| 国产人妖乱国产精品人妖| hitomi一区二区三区精品| 一区二区三国产精华液| 欧美猛男男办公室激情| 精品一区二区三区蜜桃| 中文字幕第一区第二区| 色丁香久综合在线久综合在线观看| 夜夜爽夜夜爽精品视频| 日韩一区二区免费电影| 国产成a人亚洲精品| 亚洲精选视频免费看| 欧美人牲a欧美精品| 久久国产视频网| 中文一区二区在线观看| 在线看国产一区二区| 久久狠狠亚洲综合| 中文字幕一区二区三| 5858s免费视频成人| 国产69精品久久99不卡| 亚洲一区在线看| 精品国产污网站| 色视频欧美一区二区三区| 青青草国产成人av片免费| 国产清纯在线一区二区www| 欧美特级限制片免费在线观看| 美女视频黄频大全不卡视频在线播放| 精品国产免费一区二区三区四区| 成人动漫中文字幕| 美女www一区二区| 亚洲同性同志一二三专区| 欧美一卡二卡在线观看| 97se亚洲国产综合自在线不卡| 秋霞影院一区二区| 亚洲天堂中文字幕| 精品国产伦一区二区三区观看方式| 91免费版在线看| 久久疯狂做爰流白浆xx| 亚洲一区免费在线观看| 久久久久久一二三区| 欧美性受xxxx黑人xyx性爽| 国产成人精品一区二区三区四区 | 99re这里只有精品6| 男人的天堂亚洲一区| 亚洲欧美日韩国产一区二区三区| 欧美一级二级三级蜜桃| 91搞黄在线观看| 成人h精品动漫一区二区三区| 美国欧美日韩国产在线播放| 国产精品国产三级国产三级人妇| 欧美一级日韩不卡播放免费|