做个文件下载Demo;使用wininet;先只是下载文件;一般多数情况开发下载功能都使用多线程;先来看wininet的使用;

VC6的程序运行如下;

添加wininet库:

VC2019;新建一个对话框工程;

程序运行结果如下;

对话框CPP文件加入

#include <wininet.h>

为编辑框添加成员变量strurl;

按钮单击处理函数:

void Cfiledowndemo1Dlg::OnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码UpdateData();Cfiledowndemo1Dlg* pdlg = (Cfiledowndemo1Dlg*)this;CHAR szHead[] = "Accept: */*\r\n\r\n";VOID* szTemp[25];DWORD dwSize;HINTERNET hConnect;HINTERNET hOpen;FILE* pFile=NULL;hOpen = InternetOpen(NULL,INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);AfxMessageBox(pdlg->strurl);//hConnect = InternetOpenUrl(hOpen, pdlg->strurl, (LPCWSTR)szHead, lstrlen((LPCWSTR)szHead), INTERNET_FLAG_DONT_CACHE, 0);hConnect = InternetOpenUrl(hOpen, pdlg->strurl, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);if (!hConnect){return;}else{AfxMessageBox(L"开始下载!!!");}//pFile = fopen_s("G:\temp", "wb");errno_t err = 0;err=fopen_s(&pFile, "G:\\temp\\itzs_v2019.zip", "w+b");if (err == 0){AfxMessageBox(L"打开文件成功!!!");}else{AfxMessageBox(L"打开文件失败!!!");return;}while (1) {InternetReadFile(hConnect, szTemp, 50, &dwSize);if (!dwSize)goto end;elsefwrite(szTemp, sizeof(char), dwSize, pFile);}
end://MessageBox(NULL, "下载完成", "提示", MB_OK);AfxMessageBox(L"下载完成!!!");fflush(pFile);fclose(pFile);InternetCloseHandle(hConnect);InternetCloseHandle(hOpen);
}

首先要UpdateData(); 以获取输入的下载网址到strurl;

然后执行 InternetOpen;

然后 InternetOpenUrl ;文件头szHead2个参数填为注释掉的一句,无法打开网址;先填为NULL和0;

打开文件目前应使用fopen_s,而非fopen;

下载完成关闭句柄;

对如下两个网址测试成功;

http://down1.zmnrz.com/cx/20200415/1/FlashFXP_131_15632.exe
http://cr3.9pj8m.com/itzs_v2019.zip

目前是直接在代码里打开文件时写存入的下载文件名,有时间再继续;

err=fopen_s(&pFile, "G:\\temp\\itzs_v2019.zip", "w+b");

w+b含义:新建文件,写入,二进制方式;

VC2019中没有手动添加wininet.lib;应该自己包含了;

Cfiledowndemo1Dlg* pdlg = (Cfiledowndemo1Dlg*)this;

这句获取对话框指针;

VC++2019 使用wininet下载文件相关推荐

  1. VC使用HTTP协议下载文件

    // //功能:从网上下载文件并保存到本地 / int CMyFun::InternetGetFile(CString szUrl, CString szFileName) {     szUrl.F ...

  2. *(已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法

    Visual Studio 2019中的安装问题详细解决方法 前言 一.下载地址 二.问题解决 1.连接WIFI 2.修改DNS 刷新本地DNS解析缓存(分割线,7-13更新) 前言 因为最近要学习C ...

  3. VC下载文件 + 显示进度条

    在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: UINT DownloadFile(LPVOID pParam) { CWn ...

  4. vc:如何从Internet上有效而稳定地下载文件

    http://www.vckbase.com/index.php/wv/172 如何从Internet上有效而稳定地下载文件 ,这是很多网络应用程序要考虑的重要问题,本文提供的代码段针对这个问题进行了 ...

  5. SecureCRT上传下载文件

    2019独角兽企业重金招聘Python工程师标准>>> SecureCRT是一个仿真终端连接工具.它可以方便的连接SSH服务器,远程管理Linux.同时,它还能使用多种协议方便的上传 ...

  6. 计算机缺失wininet.dll,xp系统开机提示wininet.dll文件丢失怎么解决

    大家在使用电脑的过程当中,最讨厌的就是电脑病毒了,它不但会给用户们造成损失,还会损坏电脑的系统,最近有位xp系统反应,电脑开机提示wininet.dll文件丢失,那么xp系统开机提示wininet.d ...

  7. java批量下载文件为zip包

    批量下载文件为zip包的工具类 package com.meeno.trainsys.util;import javax.servlet.http.HttpServletRequest; import ...

  8. 利用tftp和nfs下载文件到开发板

    2019独角兽企业重金招聘Python工程师标准>>> 一.Linux下安装nfs服务器: 1. 安装nfs服务 $sudo apt-get install nfs-kernel-s ...

  9. Android 下载文件并显示进度条

    2019独角兽企业重金招聘Python工程师标准>>> OK,上一篇文章讲了上传文件到服务端,并显示进度条 那么这边文章主要讲下载文件并显示进度条. 由于简单,所以只上传代码.还是需 ...

最新文章

  1. maven 命令创建多模块工程
  2. Git for Windows 2.13.1(2) 发布,分布式版本控制系统
  3. linux SMbus错误
  4. 0222互联网新闻 | 快手推游戏直播App“电喵直播”及工具型App光音Mulight;“AI音乐学院”完成PreA轮融资...
  5. Web前端好不好学?Web前端要学些什么呢?
  6. GPU Gems2 - 7 带位移映射的细分表面自适应镶嵌
  7. linux常用命令大全(转)好东西要分享
  8. HRESULT是什么,应该如何理解
  9. matlab中gama,matlab积分结果中的gamma()函数参数问题,急求解答!!!
  10. atomiclong 初始化_Java并发编程【1.2时代】
  11. 520 情人节 :属于 Python 程序员的脱单攻略大合集(视频版)
  12. python基础系列教程——python中的字符串和正则表达式全解
  13. Tableau Desktop 2021最新安装 + 破解教程
  14. 修改R语言安装包的默认路径
  15. CAD迷你看图 for Mac(MiniCAD)
  16. java毕业设计老鹳窝旅游网源码+lw文档+mybatis+系统+mysql数据库+调试
  17. ant design pro 实现审核图片盖章功能
  18. First non-repeating character
  19. 怎么用计算机算ess tss,ESS、RSS、TSS分别表示什么?
  20. 数据库原理第四章测验(标黑的为答案)

热门文章

  1. JDK源码解析 Integer类使用了享元模式
  2. 网络爬虫介绍||为什么学网络爬虫
  3. 使用axios上传文件+参数
  4. js一些通用方法的封装
  5. win10 安装xilinx 14.7 之后打开new project 奔溃解决方法
  6. stm32 sdio acmd41 无响应。一直是返回0x3f。解决方法是清除crc错误中断
  7. CTFshow 信息收集 web18
  8. [YTU]_2877(结构体---职工信息结构体)
  9. matlab中循环保存数据
  10. C++中的istringstream 的用法