?? main.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
char *string="0891683108200505F0840D916831588127F8000830302180635480064F60597D0021";
//---------------------------------------------------------------------------
void gsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
int nDstLength; // UNICODE寬字符數目
WCHAR wchar[128]; // UNICODE串緩沖區
for(int i=0; i<nSrcLength/2; i++)
{
wchar[i] = *pSrc++ << 8;
wchar[i] |= *pSrc++;
}
nDstLength =WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL);
pDst[nDstLength] = '\0';
ShowMessage(pDst);
}
//---------------------------------------------------------------------------
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++;
}
return nSrcLength / 2;
}
//---------------------------------------------------------------------------
/*int gsmDecodePdu(const char *pSrc, SM_PARAM * pDst)
{
int nDstLength; // 目標PDU串長度
unsigned char tmp; // 內部用的臨時字節變量
unsigned char buf[256]; // 內部用的緩沖區
// UCS2解碼
nDstLength = gsmString2Bytes(pSrc, buf, tmp * 2); // 格式轉換
nDstLength = gsmDecodeUcs2(buf, pDst->TP_UD, nDstLength); // 轉換到TP-DU
return nDstLength;
}*/
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//int gsmString2Bytes(const char* pSrc, unsigned char* pDst, int nSrcLength)
//void gsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength)
char buf[100];
unsigned char str[100];
int dd=gsmString2Bytes(string,str,68);
gsmDecodeUcs2(str,buf,dd);
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -