Microsoft Visual C++调用 WebService 方式
1、 先安装 SOAP Toolkit3.0,确认 MS XML Parser 运行库已经被正确安装。
2、 新建 Win32 Console Application.示例代码如下:
base64.h 对授权密码进行 BASE64 编码的头文件
#include <string>
using namespace std;
const static class CConvert{
public:
static void _enBase64Help(unsigned char chasc[3],unsigned char chuue[4]);
static string enBase64( const char* inbuf, size_t inbufLen );
static string enBase64( const string &inbuf);
};
Base64.cpp 编码头文件的实现类
#include "stdafx.h"
#include "base64.h"
void CConvert::_enBase64Help(unsigned char chasc[3],unsigned char chuue[4])
{
int i, k=2;unsigned char t = 0;
for(i=0; i<3; i++)
{
*(chuue+i) = *(chasc+i)>>k;
*(chuue+i) |= t;
t = *(chasc+i)<<(8-k);
t >>= 2;k += 2;
}
*(chuue+3) = *(chasc+2)&63;
for ( i=0; i<4; i++ ) {
if ( (*(chuue+i)<=128) && (*(chuue+i)<=25) ) {*(chuue+i) += 65;
} else if ( (*(chuue+i)>=26) && (*(chuue+i)<=51) ) {*(chuue+i) += 71;
} else if ( (*(chuue+i)>=52) && (*(chuue+i)<=61) ) {*(chuue+i) -= 4;
} else if ( *(chuue+i)==62 ) {*(chuue+i) = 43;
} else if ( *(chuue+i)==63 ) {*(chuue+i) = 47;
}}}
string CConvert::enBase64(const char* inbuf, size_t inbufLen ) {
string outStr;
unsigned char in[8];unsigned char out[8];out[4] = 0;size_t blocks = inbufLen / 3;
for ( size_t i=0; i<blocks; i++ ) {
in[0] = inbuf[i*3];in[1] = inbuf[i*3+1];in[2] = inbuf[i*3+2];_enBase64Help(in,out);
outStr += out[0];outStr += out[1];outStr += out[2];outStr += out[3];
}
if ( inbufLen % 3 == 1 ) {
in[0] = inbuf[inbufLen-1];in[1] = 0;in[2] = 0;
_enBase64Help(in,out);
- 1
- 2
- 3
前往页