本文实例讲述了C++实现下载的方法,分享给大家供大家参考。
具体实现代码如下:
复制代码 代码如下:
#include <UrlMon.h>
#include <WinInet.h>
#pragma comment(lib,"wininet")
void CFileDownloadDlg::OnBnClickedBtnDownload()
{
// 使用UrlDownloadToFile函数
HRESULT hRet = URLDownloadToFile(NULL,"http://www.baidu.com/img/baidu_sylogo1.gif","c:\\temp\\1.gif",0,NULL);
if (S_OK != hRet)
{
MessageBox("下载失败");
return;
}
//使用windows internet 库
HINTERNET hSession = InternetOpen("", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hSession != NULL)
{
HINTERNET hLink2 = InternetOpenUrl(hSession, "http://www.baidu.com/img/baidu_sylogo1.gif", NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
if (hLink2 != NULL)
{
BYTE temp[1024];
DWORD dwNum = 1;
FILE *hFile;
if ((hFile = fopen("c:\\temp\\2.gif", "wb")) != NULL)
{
while (dwNum>0)
{
InternetReadFile(hLink2, temp, 1024, &dwNum);
fwrite(temp, sizeof(char), dwNum, hFile);
}
fclose(hFile);
MessageBox("download finished...");
}
InternetCloseHandle(hLink2);
hLink2 = NULL;
}
InternetCloseHandle(hSession);
hSession = NULL;
}
}
#include <WinInet.h>
#pragma comment(lib,"wininet")
void CFileDownloadDlg::OnBnClickedBtnDownload()
{
// 使用UrlDownloadToFile函数
HRESULT hRet = URLDownloadToFile(NULL,"http://www.baidu.com/img/baidu_sylogo1.gif","c:\\temp\\1.gif",0,NULL);
if (S_OK != hRet)
{
MessageBox("下载失败");
return;
}
//使用windows internet 库
HINTERNET hSession = InternetOpen("", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hSession != NULL)
{
HINTERNET hLink2 = InternetOpenUrl(hSession, "http://www.baidu.com/img/baidu_sylogo1.gif", NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
if (hLink2 != NULL)
{
BYTE temp[1024];
DWORD dwNum = 1;
FILE *hFile;
if ((hFile = fopen("c:\\temp\\2.gif", "wb")) != NULL)
{
while (dwNum>0)
{
InternetReadFile(hLink2, temp, 1024, &dwNum);
fwrite(temp, sizeof(char), dwNum, hFile);
}
fclose(hFile);
MessageBox("download finished...");
}
InternetCloseHandle(hLink2);
hLink2 = NULL;
}
InternetCloseHandle(hSession);
hSession = NULL;
}
}
希望本文所述对大家的C++程序设计有所帮助。