📄 qp.cpp
字号:
// QP.cpp: implementation of the QP class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "QP.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
QP::QP()
{
}
QP::~QP()
{
}
BOOL QP::QPDeCode(const char *aSrc)
{
unsigned char * p = m_resultbuffer;
int n = strlen( aSrc );
unsigned char ch, cl;
while ( *aSrc ) // aSrc is an ASCIIZ string
{
if ( ( *aSrc == '=' ) && ( n - 2 > 0 ) )
{
ch = Chr2Hex( aSrc[1] );
cl = Chr2Hex( aSrc[2] );
if ( ( ch == ( unsigned char )-1 ) || ( cl == ( unsigned char )-1 ) )
*p++ = *aSrc++;
else
{
*p++ = ( ch << 4 ) | cl;
aSrc += 3;
}
}
else
*p++ = *aSrc++;
}
reslenth = p - m_resultbuffer;
return TRUE;
}
unsigned char QP::Chr2Hex( char c )
{
if ( c >= 'a' && c <= 'z' ) // it's toupper
c = c - 'a' + 'A';
if ( c >= '0' && c <= '9' )
return ( int )( c - '0' );
else if ( c >= 'A' && c <= 'F' )
return ( int )( c - 'A' + 10 );
else
return -1;
}
BOOL QP::GetRes(char *result, int lenth)
{
int actlen = reslenth < lenth?reslenth:lenth;
memcpy(result,m_resultbuffer,sizeof(char)*actlen);
result[actlen] = 0;
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -