资源简介
MFC邮件客户端(支持收发邮件)
代码片段和文件信息
#include “StdAfx.h“
#include “base64.h“
// 静态成员初始化7-bit 字母表.
CString Cbase64::m_sbase64Alphabet =
_T( “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“ );
Cbase64::Cbase64(void)
{
}
Cbase64::~Cbase64(void)
{
}
//---------------------------------------------------------------------------
CString Cbase64::Encode(LPCTSTR szEncodingint nSize)
{
CString sOutput = _T( ““ );
int nNumBits;
UINT nDigit;
int lp = 0;
if( szEncoding == NULL )
return sOutput;
m_szInput = szEncoding;
m_nInputSize = nSize;
m_nBitsRemaining = 0;
nDigit = ReadBits(&nNumBits lp );
while( nNumBits > 0 )
{
sOutput += m_sbase64Alphabet[ (int)nDigit ];
nDigit = ReadBits(&nNumBits lp );
}
while( sOutput.GetLength() % 4 != 0 )
{
sOutput += ‘=‘;
}
return sOutput;
}
//---------------------------------------------------------------------------
// 输出缓冲区大小不小于 3/4 输入缓冲区大小. 为了简便它们的大小取为一致.
int Cbase64::Decode(LPCTSTR szDecoding LPTSTR szOutput)
{
int c lp =0;
int i;
int nDigit;
int nDecode[ 256 ];
ASSERT( szDecoding != NULL );
ASSERT( szOutput != NULL );
if( szOutput == NULL )
return 0;
if( szDecoding == NULL )
return 0;
CString sInput = szDecoding;
if( sInput.GetLength() == 0 )
return 0;
// 建立解码表.
for( int i = 0; i < 256; i++ )
nDecode[i] = -2; // 非法数字.
for(i=0; i < 64; i++ )
{
nDecode[ m_sbase64Alphabet[ i ] ] = i;
nDecode[ m_sbase64Alphabet[ i ] | 0x80 ] = i; // 忽略8th bit.
nDecode[ ‘=‘ ] = -1;
nDecode[ ‘=‘ | 0x80 ] = -1;
}
// 清除输出缓冲区.
memset( szOutput 0 sInput.GetLength() + 1 );
// 对输入数据进行解码.
for( lp = 0 i = 0; lp < sInput.GetLength(); lp++ )
{
c = sInput[ lp ];
nDigit = nDecode[ c & 0x7F ];
if( nDigit < -1 )
{
return 0;
}
else if( nDigit >= 0 )
WriteBits( nDigit & 0x3F szOutput i );
}
return i;
}
//---------------------------------------------------------------------------
UINT Cbase64::ReadBits(int * pBitsRead int& lp)
{
ULONG lScratch;
while( ( m_nBitsRemaining < 6 ) &&
( lp < m_nInputSize ) )
{
int c = m_szInput[ lp++ ];
m_lBitStorage <<= 8;
m_lBitStorage |= (c & 0xff);
m_nBitsRemaining += 8;
}
if( m_nBitsRemaining < 6 )
{
lScratch = m_lBitStorage << ( 6 - m_nBitsRemaining );
*pBitsRead = m_nBitsRemaining;
m_nBitsRemaining = 0;
}
else
{
lScratch = m_lBitStorage >> ( m_nBitsRemaining - 6 );
*pBitsRead = 6;
m_nBitsRemaining -= 6;
}
return (UINT)lScratch & 0x3F;
}
//---------------------------------------------------------------------------
void Cbase64::WriteBits(UINT nBits LPTSTR szOutput int& i)
{
UINT nScratch;
m_lBitStorage = (m_lBitStorage << 6) | nBits;
m_nBitsRemaining += 6;
while( m_nBitsRemaining > 7 )
{
nScratch = m_lBitStorage >> (m_nBitsRemaining - 8);
szOutput[ i++ ] = nScratch & 0xFF;
m_nBitsRemaining -=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-10-25 10:50 MailClient\
目录 0 2013-10-25 10:50 MailClient\Debug\
文件 219136 2013-10-24 19:46 MailClient\Debug\MailClient.exe
文件 1763972 2013-10-24 19:46 MailClient\Debug\MailClient.ilk
文件 5409792 2013-10-24 19:46 MailClient\Debug\MailClient.pdb
目录 0 2013-10-25 10:50 MailClient\MailClient\
文件 3076 2013-10-22 10:05 MailClient\MailClient\ba
文件 517 2013-10-22 09:56 MailClient\MailClient\ba
目录 0 2013-10-25 10:50 MailClient\MailClient\Debug\
文件 20176 2013-10-24 19:33 MailClient\MailClient\Debug\ba
文件 78528 2013-10-24 19:46 MailClient\MailClient\Debug\CL.read.1.tlog
文件 23168 2013-10-24 19:46 MailClient\MailClient\Debug\CL.write.1.tlog
文件 22062 2013-10-14 20:26 MailClient\MailClient\Debug\DAO_ACCESSDlg.obj
文件 73834 2013-10-24 19:33 MailClient\MailClient\Debug\LoginDlg.obj
文件 667 2013-10-11 13:28 MailClient\MailClient\Debug\MailClient.exe.em
文件 732 2013-10-11 13:28 MailClient\MailClient\Debug\MailClient.exe.em
文件 381 2013-10-24 19:46 MailClient\MailClient\Debug\MailClient.exe.intermediate.manifest
文件 64 2013-10-24 20:04 MailClient\MailClient\Debug\MailClient.lastbuildstate
文件 1047 2013-10-24 20:04 MailClient\MailClient\Debug\MailClient.log
文件 29793 2013-10-24 19:33 MailClient\MailClient\Debug\MailClient.obj
文件 34406400 2013-10-24 19:33 MailClient\MailClient\Debug\MailClient.pch
文件 73048 2013-10-24 19:33 MailClient\MailClient\Debug\MailClient.res
文件 707 2013-10-11 13:27 MailClient\MailClient\Debug\MailClient.vcxprojResolveAssemblyReference1.cache
文件 0 2013-10-11 13:27 MailClient\MailClient\Debug\MailClient.write.1.tlog
文件 101824 2013-10-24 19:46 MailClient\MailClient\Debug\MailClientDlg.obj
文件 210 2013-10-11 13:28 MailClient\MailClient\Debug\MailClient_manifest.rc
文件 19843 2013-10-14 21:21 MailClient\MailClient\Debug\MailSmtp.obj
文件 29385 2013-10-24 19:33 MailClient\MailClient\Debug\Pop3.obj
文件 20605 2013-10-24 19:33 MailClient\MailClient\Debug\Smtp.obj
文件 12599 2013-10-24 19:33 MailClient\MailClient\Debug\WSocket.obj
文件 89843 2013-10-24 19:33 MailClient\MailClient\Debug\WriteDlg.obj
............此处省略128个文件信息
- 上一篇:人脸识别C++源码
- 下一篇:Makefile教程-经典
相关资源
- Visual C++ MFC 源代码大全
- 《C++游戏开发》笔记十二 战争迷雾的
- 《MFC游戏开发》笔记九 碰撞检测 怪物
- 源代码——MFC的WebBrowser控件 C++与ja
- 无线通信系统仿真--C++实用模型包含源
- vc++之mfc屏幕监控系统源代码
- 《C++游戏开发》笔记十四 平滑过渡的
- C++ 基于蓝牙的通信 代码
- 视频捕获代码
- 计算机图形学 猫变虎作业
- C++ Builder 6实用编程100例光盘、源代码
- C++ Builder 5高级编程精解光盘、源代码
- Visual C++/Turbo C串口通信编程实践第2版
- CTP_API_C++可实盘多合约多策略版本源代
- Visual C++实现MPEG/JPEG编解码技术代码集
- Directshow实现的虚拟摄像头win10+vs2013
- C++ MFC 吹泡泡 源代码
- 游戏编程代码\\游戏编程学习笔记之九
- C++ Primer第五版 源代码
- 基于MFC的图片浏览器代码
- 杨淑莹 数字图像处理VC++ 源代码 全
- C++Primer中文版(第4版) PDF + 代码
- 基于MFC的音乐播放器代码
- 单片机C语言程序设计实训100例第3篇综
- 数据结构C语言版-严蔚敏PDF + 课后题代
- 数据包捕获与分析 端口扫描 流量统计
- 表情识别C++代码
- 任燕《数据结构C++描述》实验指导书
- C++数值算法第二版PDF文档和源代码
- C语言小项目代码大全
评论
共有 条评论