VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 4626|回复: 48

[原创] C++通过http下载二进制文件 的一个办法

[复制链接]
79_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-24 15:26:51 | 显示全部楼层 |阅读模式
近做了个动态库的升级程序,需要到服务器检查是否有新版本的动态库如果有的话就下载下来升级。这里与大家分享我的测试下载该二进制文件的过程。如下:

#include <stdio.h>
#include <windows.h>
#include <wininet.h>
#define MAXBLOCKSIZE 1024

void download(const char*);

int main(int argc, char* argv[]){
if(argc > 1){
  download((const char*)argv[1]);
}else{
  printf("Usage: auto-Update url");
}
return 0;
}


/**
* 执行 文件下载 操作
* @param Url: The target action url
*
*/
void download(const char *Url)
{
HINTERNET hSession = InternetOpen("RookIE/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hSession != NULL)
{
  HINTERNET handle2 = InternetOpenUrl(hSession, Url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
  if (handle2 != NULL)
  {
   printf("%s/n",Url);
   byte Temp[MAXBLOCKSIZE];
   ULONG Number = 1;

   FILE *stream;
   if( (stream = fopen( "F://LeadBridge//new.exe", "wb" )) != NULL )//这里只是个测试,因此写了个死的文件路径
   {
    while (Number > 0)
    {
     InternetReadFile(handle2, Temp, MAXBLOCKSIZE - 1, &Number);
     //fprintf(stream, (const char*)Temp);
     fwrite(Temp, sizeof (char), Number , stream);
    }
    fclose( stream );
   }
   
   InternetCloseHandle(handle2);
   handle2 = NULL;
  }
  InternetCloseHandle(hSession);
  hSession = NULL;
}
}

希望大家多多指点,提出更好的方法!

评分

参与人数 6驿站币 +7 热心值 +7 收起 理由
16_avatar_small 阳光 + 1 + 1 感谢分享!
46_avatar_small xiaocaocao + 1 + 1
65_avatar_small 编程者 + 2 + 2 精神可嘉 再接再厉
11_avatar_small 饮水机 + 1 + 1 感谢分享!
10_avatar_small cmx006 + 1 + 1 很给力!
28_avatar_small 天下 + 1 + 1

查看全部评分





上一篇:WIN32API常用进程、线程函数
下一篇:Lua语言调用C DLL文件
95_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-24 15:56:16 | 显示全部楼层
感谢分享,谢谢拉~
24_avatar_middle
最佳答案
0 
online_vip 发表于 2015-12-24 16:24:41 | 显示全部楼层
看下方法
24_avatar_middle
最佳答案
0 
online_vip 发表于 2015-12-24 16:25:34 | 显示全部楼层
简单有效
79_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2015-12-24 16:29:55 | 显示全部楼层

简单有限 为什么不给我评分 期望加热心
88_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-24 19:55:40 | 显示全部楼层
了解下方法
84_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-24 20:54:58 | 显示全部楼层
可以有下压缩包解压更好了
50_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-25 01:03:25 | 显示全部楼层
谢谢分享//
15_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-25 09:18:01 | 显示全部楼层
顶楼主啦..希望楼主多发精品好帖啦.....
06_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-25 14:22:18 | 显示全部楼层
感谢分享,谢谢拉~
24_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-25 15:41:30 | 显示全部楼层
正缺少这方面的知识
70_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-25 16:45:06 | 显示全部楼层
下载看看,是否有用
28_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-26 12:24:26 | 显示全部楼层
看下方法
10_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-27 11:42:02 | 显示全部楼层
下载二进制文件
04_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-28 11:11:50 | 显示全部楼层
学习下。。。。。。。。。
05_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-28 13:41:58 | 显示全部楼层
学习学习
11_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-28 19:52:28 | 显示全部楼层
看看有什么更好的办法
65_avatar_middle
最佳答案
0 
donate_vip 发表于 2015-12-28 19:55:31 | 显示全部楼层
看看你写的什么
83_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-29 11:22:45 | 显示全部楼层
难道不是2进制下的啊,都是2进制下下来的啊!!!!
84_avatar_middle
最佳答案
0 
在线会员 发表于 2015-12-29 17:23:50 | 显示全部楼层
这是什么来的,我不懂啊
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-21 17:53

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表