实例学MFC(3)--超简单C++实现网络下载器

 

 

下面展示一下C++是多么的简单。 让你只需要动动手指,5分钟之内用C++实现一个网络下载器。我们继续发扬实际主义精神,少说废话,立马动手。

首先,在VC6.0中用向导生成一个MFC exe对话框项目,让后在窗体上添加一个EditBox,用来填写我们要下载的东西的网络地址。让后给这个EditBox添加一个变量m_Add,用来存储这个网络地址的。

然后添加头文件#include ,我们调用的API需要用到它。

接着双击OK按钮,添加一下代码

#define  READ_BYTE_SIZE     1024  
void  CDLoaderDlg::OnOK() 
{
    
// TODO: 

    CString m_PathName;
    CFileDialog    dlg( FALSE, _T(
"*.*"), NULL,
        OFN_HIDEREADONLY 
| OFN_OVERWRITEPROMPT,
        _T(
"All Files (*.*)|*.*||"), 
        NULL ); 
//弹出保存对话框,
    if ( dlg.DoModal() != IDOK)
        
return ;
    m_PathName 
= dlg.GetPathName();

    CInternetSession    
is;
    CStdioFile        
*psf;
    UpdateData();
    psf 
= is.OpenURL( m_Add, 1, INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD);
    CFile    file(m_PathName,
             CFile::modeCreate 
| CFile::modeWrite | CFile::typeBinary);//建立本地文件

    
char    buf[READ_BYTE_SIZE];
    
int    readbyte;
    
while(1)
    
{
        readbyte 
= psf->Read( buf, READ_BYTE_SIZE);//每次下载READ_BYTE_SIZE字节数据
        if ( !readbyte)
            
break;
        file.Write( buf, readbyte); 
//把下载的数据写入到文件中
    }


    psf
->Close();
    file.Close();
    delete psf;

    
//CDialog::OnOK();
}

你可能感兴趣的:(C++,mfc,c++,网络,internet,byte,null)