请大家帮我测试一下这个程序有没有问题~~~~

vanxining 2008-10-01 07:41:23
#include <windows.h>
#include <wininet.h>
#include <iostream>
using namespace std;
#pragma comment(lib, "Wininet.lib")

void Download(char url[]);

int main(int argc, char *argv[])
{
Download("http://www.baidu.com/");
getchar();
return 0;
}


void Download(char url[])
{
char buffer[100000];//下载文件的缓冲区
DWORD bytes_read;//下载的字节数

//打开一个internet连接
HINTERNET Internet=InternetOpen("HTTP Downloader",INTERNET_OPEN_TYPE_PRECONFIG,NULL, NULL, NULL);

if(!Internet)
throw "InternetOpen error!";

//打开一个http url地址
HINTERNET file_handle=InternetOpenUrl(Internet,url,NULL,0,INTERNET_FLAG_RELOAD,0);

if(!file_handle)
{
cout<<GetLastError();
return;
}
//从url地址中读取文件内容到缓冲区buffer
BOOL b = InternetReadFile(file_handle, buffer, 100000, &bytes_read);
if(!b) throw "InternetReadFile error!";

buffer[bytes_read] = 0;
//cout<<buffer<<endl<<endl;
//关闭连接
InternetCloseHandle(Internet);
cout<<buffer;
}
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanxining 2008-10-01
  • 打赏
  • 举报
回复
我的IE被损坏了。
我的IE应该被损坏了。
vanxining 2008-10-01
  • 打赏
  • 举报
回复
看来不是程序的问题,是我机子的问题。
我在网上看到说用WINet和IE关系极大。
我的IE被损坏了。
cnzdgs 2008-10-01
  • 打赏
  • 举报
回复
没什么问题,只是有一点要注意一下:
char buffer[100000];//下载文件的缓冲区
这样定义的数组是在栈中分配空间的,栈的默认大小只有1MB,这么大的数组最好用new分配,不用时再delete,以免栈溢出。
vanxining 2008-10-01
  • 打赏
  • 举报
回复
#include <windows.h>
#include <wininet.h>
#include <iostream>
using namespace std;
#pragma comment(lib, "Wininet.lib")

void Download(char url[]);

int main(int argc, char *argv[])
{
Download("http://www.baidu.com/");
getchar();
return 0;
}


void Download(char url[])
{
char buffer[100000];//下载文件的缓冲区
DWORD bytes_read;//下载的字节数

//打开一个Internet连接
HINTERNET Internet=InternetOpen("HTTP Downloader",INTERNET_OPEN_TYPE_PRECONFIG,NULL, NULL, NULL);

if(!Internet)
throw "InternetOpen error!";

//打开一个http url地址
HINTERNET file_handle=InternetOpenUrl(Internet,url,NULL,0,INTERNET_FLAG_RELOAD,0);

if(!file_handle)
{
printf("%d\n",GetLastError());
return;
}
//从url地址中读取文件内容到缓冲区buffer
BOOL b = InternetReadFile(file_handle, buffer, 100000, &bytes_read);
if(!b) throw "InternetReadFile error!";

buffer[bytes_read]='\0';
//关闭连接
InternetCloseHandle(Internet);
printf(buffer);
}
vanxining 2008-10-01
  • 打赏
  • 举报
回复
不行,用下面这个吧。
CSDN在解释cin<<之类会有问题。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧