啊
解决方案 »
- 好久没来了,冒个泡以示存在.
- 如何把一个*.c文件和相应头文件加到已有的vc6的工程中去?
- 关于工具条的问题!!请大家进来看看
- 如何在两个 MFC 程序间进京数据交换?
- 菜鸟提问:关于视图遍历。或许我的问题很可笑,但我是个初学者,还是请各位大侠多多包涵。
- 超简单!在线等,如何将文本框设定为默认输入框
- 我想做一个web上在线编辑word文件的控件,保存后自动上载到服务器,如何做呢?
- CScrollView的SetScrollSize怎么不管用,请高手指点!
- 请问:线程1向CPtrList里加入对象,线程2从CPtrList里删除对象,线程3遍历CPtrList。如没有临界区,系统会不会崩溃?
- 中国的程序员活该!!!!!!!!!
- 从CFontDialog 继承一个MyFontDialog为什么没有了DoDataExchange?
- 如何添加一个新的工具条?
{
if(size < DecodeSize(len))
return -1;
int c;
int i; //index of base64
int j=0; //index of orig
for(i=0; i<len; i++)
{
c=base64[i];
if(c==cBASE64PAD)
break;
c=(int)strchr(szBase64Table, c);
if(c==0)
return -1;
c-=(int)szBase64Table;
switch(i & 0x03) //i%4
{
case 0:
orig[j] = c << 2;
break;
case 1:
orig[j++] |= c >> 4;
orig[j] = (c & 0x0f) << 4;
break;
case 2:
orig[j++] |= c >> 2;
orig[j] = (c & 0x03) << 6;
break;
case 3:
orig[j++] |= c;
break;
}
}
if(c == cBASE64PAD)
{
switch(i & 0x03) //i % 4
{
case 0:
case 1:
return -1;
case 2:
j++;
case 3:
// j++;
break;
}
}
return j;
}
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";int CBase64::Encode(char* orig, int len, char* base64, int size)
{
if(size < EncodeSize(len))
return -1;
char* current=orig;
int i=0;
while(len > 2)
{
base64[i++] = szBase64Table[current[0] >> 2];
base64[i++] = szBase64Table[((current[0] & 0x03) << 4) + (current[1] >> 4)];
base64[i++] = szBase64Table[((current[1] & 0x0f) << 2) + (current[2] >> 6)];
base64[i++] = szBase64Table[current[2] & 0x3f];
current += 3;
len -= 3;
}
if(len != 0)
{
base64[i++] = szBase64Table[current[0] >> 2];
if (len > 1)
{
base64[i++] = szBase64Table[((current[0] & 0x03) << 4) + (current[1] >> 4)];
base64[i++] = szBase64Table[(current[1] & 0x0f) << 2];
base64[i++] = cBASE64PAD;
}
else
{
base64[i++] = szBase64Table[(current[0] & 0x03) << 4];
base64[i++] = cBASE64PAD;
base64[i++] = cBASE64PAD;
}
}
return i;
}int CBase64::Decode(char* base64, int len, char* orig, int size)
{
if(size < DecodeSize(len))
return -1;
int c;
int i; //index of base64
int j=0; //index of orig
for(i=0; i<len; i++)
{
c=base64[i];
if(c==cBASE64PAD)
break;
c=(int)strchr(szBase64Table, c);
if(c==0)
return -1;
c-=(int)szBase64Table;
switch(i & 0x03) //i%4
{
case 0:
orig[j] = c << 2;
break;
case 1:
orig[j++] |= c >> 4;
orig[j] = (c & 0x0f) << 4;
break;
case 2:
orig[j++] |= c >> 2;
orig[j] = (c & 0x03) << 6;
break;
case 3:
orig[j++] |= c;
break;
}
}
if(c == cBASE64PAD)
{
switch(i & 0x03) //i % 4
{
case 0:
case 1:
return -1;
case 2:
j++;
case 3:
// j++;
break;
}
}
return j;
}
例如,GB2312, ISO等,还得根据不同的编码解码吗?
另外,除了关键字比较之外,还有没有什么办法能快速找到并恢复邮件的内容和附件信息?
最简单:当成.eml村起来,然后ShellExecute