昨天说今天写一个Windows下载器的,早上一上午的选修课,逃不掉,现在的老师基本上都点名,悲剧啊········

进入正题吧,

写好的东西下面是截图

昨天的进度条可能会卡死,但是可以调用线程解决。今天的代码里面会涉及就不再详细讲解了

进入今天的正题

void CProgress_02Dlg::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
HANDLE hrhread;    //线程句柄
DWORD lppara = 1 , lpid;
hrhread = CreateThread( 0 , 0 , downs , &lppara , 0 , &lpid);  创建新的线程  downs下载函数
UpdateData(true);
}

这个基本上都因该看得懂就不详解了

DWORD WINAPI downs(LPVOID lppara)
{
CString kks;//获取IDC_EDIT_URL的变量
CWnd *pwnd = AfxGetMainWnd();//获取窗口指针
CProgressCtrl *ps = (CProgressCtrl *)pwnd->GetDlgItem(IDC_PROGRESS1);
CInternetSession netsession;
char buffer[512];
CStdioFile *sfile;
pwnd->GetDlgItemText(IDC_EDIT_URL , kks);//获取网址
sfile = netsession.OpenURL(kks , 1 , INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_RELOAD );
CFile filename(sfile->GetFileName(), CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
int bit;
int pos  = sfile->SeekToEnd();//获取文件尾的指针
sfile->SeekToBegin();//获取开头的指针
ps->SetRange( 0 , pos);
pos  =0 ;
while (bit = sfile->Read(buffer , 512))     //读取文件大小
{
pos += bit;
ps->SetPos(pos);         //设置进度条位置
filename.Write(buffer , bit);    //写入本地文件
}
return 0;
}

红色部分是winnet相关的部分,现在不解释

以后详解。

我在学校的网速快,下载一下子就下载完了,但是下载的文件大小变化的很慢。不知道为什么。

本次受了不少挫折,用线程的时候出现了很多问题,主要是自己不够熟悉。

还有一个就是对internet编程不熟悉,导致下载了之后文件大小还是没有变化!

windows API 菜鸟学习之路(四)相关推荐

  1. windows API 菜鸟学习之路(一)

    从今天开始学习  windows api编程,记录菜鸟学习的点点滴滴 首先从线程开始 直接上函数 msdn上面的函数原型 HANDLE CreateThread(   LPSECURITY_ATTRI ...

  2. windows API 菜鸟学习之路(二)

    对于昨天的运行结果,在别人的笔记本上面运行了几次,每次都是 create thread succeed ! 和create thread succeed ! parameter is 1 这两种现实 ...

  3. windows API 菜鸟学习之路(三)

    今天自学的是MFC里面的  进度条, MFC创建的框架里面添加一个进度条控件,名字改为IDC_PG; OnInitDialog()函数里面插入下面的代码 CProgressCtrl *pg = (CP ...

  4. Windows事件等待学习笔记(四)—— 事件信号量互斥体

    Windows事件等待学习笔记(四)-- 事件&信号量&互斥体 要点回顾 事件 实验:验证SignalState 第一步:编译并运行以下代码 第二步:观察结果 第三步:修改代码并执行 ...

  5. Java多线程学习之路(四)---死锁(DeadLock)

    Java多线程学习之路(四)-死锁(DeadLock) 1.定义 死锁就是多个线程在竞争共享资源的时候,相互阻塞,不能脱身的状态(个人理解).其实死锁一定程度上可以看成一个死循环. 举个现实生活中的例 ...

  6. Windows x64内核学习笔记(四)—— 9-9-9-9-12分页

    Windows x64内核学习笔记(四)-- 9-9-9-9-12分页 前言 9-9-9-9-12分页 实验一:线性地址转物理地址 页表基址 定位基址 PTE to PXE 实验二:通过页表基址定位各 ...

  7. Windows驱动开发学习笔记(四)—— 3环与0环通信(常规方式)

    Windows驱动开发学习笔记(四)-- 3环与0环通信(常规方式) 设备对象 创建设备对象 设置数据交互方式 创建符号链接 IRP与派遣函数 IRP的类型 其它类型的IRP 派遣函数 派遣函数注册位 ...

  8. Windows保护模式学习笔记(四)—— 中断门陷阱门

    Windows保护模式学习笔记(四)-- 中断门&陷阱门 要点回顾 中断描述符表(IDT) 一.中断门 实验:构造一个中断门 第一步:初步构造参数 第二步:确定 Offset in Segme ...

  9. typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)

    上一文已经写了es5,es6等类的定义,所以本章主要写es5和es6的继承,由于es6的继承和ts的继承如出一辙,只是加了类型定义而已,所以ts的继承稍微写下,不会太详细. 文章目录 es5继承 原型 ...

最新文章

  1. 如果修改postgresql的最大连接数
  2. python硬件驱动_Python学习:计算机基础之计算机硬件
  3. CSS设置图片与文字水平居中对齐
  4. 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)
  5. 25个吸引眼球的广告设计
  6. 俄罗斯“指尖旋风”席卷南京
  7. (10.1)Python学习笔记二
  8. 在Rstudio中点一点就出来了一个R包
  9. ubuntu的两种网络连接模式
  10. 贺利坚老师汇编课程56笔记:CMP指令
  11. mysql优化之insert/delete/update
  12. linux mysql数据库升级_Linux升级mysql到5.7
  13. 数据抽样方式:概率抽样、非概率抽样
  14. html中圆角和颜色透明度的属性与使用
  15. Learn Git Branching 学习笔记(Git远程仓库篇)
  16. Iocomp控件官网下载地址破解功能介绍手册
  17. 如何在 SAP UI5 应用里显示 PDF 文件试读版
  18. 一家国营老化工厂的数字化三级跳|案例解析
  19. 14张Python基础知识点总结思维导图配搭一份视频教程还不能入门?
  20. Android 框架问题分析案例 - 谁杀了桌面?

热门文章

  1. chiinv函数java_Excel统计函数:CHIINV函数实例-excel技巧-电脑技巧收藏家
  2. python正则替换查询_使用Python中的正则表达式进行搜索和替换
  3. Linux 环境下NFS服务安装及配置
  4. java编译sql存过_SQL SERVER 临时表导致存储过程重编译(recompile)的一些探讨
  5. 松下机器人找原点步骤_桁架机器人在汽车座椅安装生产线中的应用
  6. Python 机器学习 随机森林 天气最高温度预测任务(三)
  7. linux设置环境变量 临时设置 和 永久设置
  8. 银行业DevOps状态:来自DOES 2018伦敦大会的报告
  9. 3星|《财经》2017年第29期:未来,国有资本的收益和变现都是补贴社保的渠道...
  10. 作为搭建网站的程序员,你有Apsara Clouder云计算专项技能认证吗?