开发sms初学者的,经常用到的几个函数.txt

来自「开发SMS初学者的」· 文本 代码 · 共 71 行

TXT
71
字号
开发SMS初学者的,经常用到的几个函数 
 
搜集-乐信   来源-【乐信工作室】 

/*****************************************************************************
* Class : Global Function
* Function : to_MultiByte
* Description: 把Unicode转换成多字节
* Parameters : char* strSM -- 要转换的Unicode缓冲
* int nLength -- Unicode缓冲的长度
* Return : 转换后的多字节字串
* Input : 
* Output : 
* History : Created by Rongdian Monday, April 29, 2002 11:03:15
* Process : 
******************************************************************************/
CString to_MultiByte(char* strSM, int nLength){
UINT nLen = 0;
PBYTE lpszM;
PBYTE lpszW = new BYTE[nLength];
memcpy(lpszW, strSM, nLength);

for(int i = 0; i < nLength/2; i++)
*((unsigned short*)lpszW + i) = ntohs(*((unsigned short*)lpszW + i));

nLen = WideCharToMultiByte(936, WC_COMPOSITECHECK,
(const unsigned short*)lpszW, nLength/2, NULL, 0, NULL, NULL);

lpszM = new BYTE[nLen+1];

nLen = WideCharToMultiByte(936, WC_COMPOSITECHECK,
(const unsigned short*)lpszW, nLength/2, (char*)lpszM, nLen, NULL, NULL);

lpszM[nLen] = 0;
CString csSM((LPCTSTR)lpszM, nLen);
delete lpszM;
delete lpszW;
return csSM;
}
/*****************************************************************************
* Class : Global Function
* Function : to_UCS2
* Description: 把多字节转换成Unicode
* Parameters : char* strSM -- -- 要转换的多字节缓冲
* int nLength -- 多字节缓冲的长度
* Return : 转换后的Unicode字串
******************************************************************************/
CString to_UCS2(char* strSM, int nLength){
CString csSM((LPCTSTR)strSM, nLength);

PBYTE lpszW = NULL;
UINT nLen = 0;

nLen = MultiByteToWideChar(936, MB_PRECOMPOSED,
(LPCTSTR)csSM, csSM.GetLength(), NULL, 0);

lpszW = new BYTE[nLen * 2];

nLen = MultiByteToWideChar(936, MB_PRECOMPOSED, 
(LPCTSTR)csSM, csSM.GetLength(), (LPWSTR)lpszW, nLen);

for(UINT i = 0; i < nLen; i ++)
*((unsigned short*)lpszW + i) = htons(*((unsigned short*)lpszW + i));

CString csRet((LPCTSTR)lpszW, nLen * 2);
delete lpszW;
return csRet;
}
 
 

⌨️ 快捷键说明

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