1
void
OnDownload_thread(
void
*
p)
2
{
3
CClientDC dc( static_cast
<
CMainFrame
*>
(p));
4
dc.TextOut(
50
,
100
,
"
正在下载最新版本迅雷,请等待
"
);
5
6
char
*
Url
=
"
http://down.sandai.net:8080/Thunder5.1.5.189.exe
"
;
7
HINTERNET hSession
=
InternetOpen(
"
RookIE/1.0
"
, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,
0
);
8
if
(hSession
!=
NULL)
9
{
10
HINTERNET handle2
=
InternetOpenUrl(hSession, Url, NULL,
0
, INTERNET_FLAG_DONT_CACHE,
0
);
11
if
(handle2
!=
NULL)
12
{
13
printf(
"
%s\n
"
,Url);
14
byte
Temp[MAXBLOCKSIZE];
15
ULONG Number
=
1
;
16
17
FILE
*
stream;
18
if
( (stream
=
fopen(
"
d:\\Thunder5.1.5.189.exe
"
,
"
wb
"
))
!=
NULL )
//
这里只是个测试,因此写了个死的文件路径
19
{
20
while
(Number
>
0
)
21
{
22
InternetReadFile(handle2, Temp, MAXBLOCKSIZE
-
1
,
&
Number);
23
//
fprintf(stream, (const char*)Temp);
24
fwrite(Temp,
sizeof
(
char
), Number , stream);
25
}
26
fclose( stream );
27
}
28
29
InternetCloseHandle(handle2);
30
handle2
=
NULL;
31
}
32
InternetCloseHandle(hSession);
33
hSession
=
NULL;
34
}
35
36
37
//
CClientDC dc(this);
38
dc.TextOut(
80
,
100
,
"
下载完成。
"
);
39
}
void
OnDownload_thread(
void
*
p)2

{3
CClientDC dc( static_cast
<
CMainFrame
*>
(p));4
dc.TextOut(
50
,
100
,
"
正在下载最新版本迅雷,请等待
"
);5

6
char
*
Url
=
"
http://down.sandai.net:8080/Thunder5.1.5.189.exe
"
;7
HINTERNET hSession
=
InternetOpen(
"
RookIE/1.0
"
, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,
0
);8
if
(hSession
!=
NULL)9

{10
HINTERNET handle2
=
InternetOpenUrl(hSession, Url, NULL,
0
, INTERNET_FLAG_DONT_CACHE,
0
);11
if
(handle2
!=
NULL)12

{13
printf(
"
%s\n
"
,Url);14
byte
Temp[MAXBLOCKSIZE];15
ULONG Number
=
1
;16
17
FILE
*
stream;18
if
( (stream
=
fopen(
"
d:\\Thunder5.1.5.189.exe
"
,
"
wb
"
))
!=
NULL )
//
这里只是个测试,因此写了个死的文件路径
19

{20
while
(Number
>
0
)21

{22
InternetReadFile(handle2, Temp, MAXBLOCKSIZE
-
1
,
&
Number);23
//
fprintf(stream, (const char*)Temp);
24
fwrite(Temp,
sizeof
(
char
), Number , stream);25
}
26
fclose( stream );27
}
28
29
InternetCloseHandle(handle2);30
handle2
=
NULL;31
}
32
InternetCloseHandle(hSession);33
hSession
=
NULL;34
}
35

36

37
//
CClientDC dc(this);
38
dc.TextOut(
80
,
100
,
"
下载完成。
"
);39
}
本文介绍了一个使用C/C++编写的简易迅雷下载器实现过程。该程序通过InternetOpen及InternetReadFile等API进行网络连接并下载指定URL的文件到本地磁盘。此外,还展示了如何在下载过程中更新GUI界面上的提示信息。
5859

被折叠的 条评论
为什么被折叠?



