﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-http://alantop.5166.info-文章分类-实际问题答案</title><link>http://www.cppblog.com/alantop/category/1213.html</link><description>股票数据格式 外汇交易系统 MT4编程 电子海图开发（S52 S57） AIS</description><language>zh-cn</language><lastBuildDate>Wed, 21 May 2008 18:14:05 GMT</lastBuildDate><pubDate>Wed, 21 May 2008 18:14:05 GMT</pubDate><ttl>60</ttl><item><title>如何通过HTTP去下载文件</title><link>http://www.cppblog.com/alantop/articles/4577.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 24 Mar 2006 16:27:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/articles/4577.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/4577.html</wfw:comment><comments>http://www.cppblog.com/alantop/articles/4577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/4577.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/4577.html</trackback:ping><description><![CDATA[
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">void</span>
				<span style="COLOR: #000000"> OnDownload_thread(</span>
				<span style="COLOR: #0000ff">void</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> p)<br /><img id="Codehighlighter1_33_1013_Open_Image" onclick="this.style.display='none'; Codehighlighter1_33_1013_Open_Text.style.display='none'; Codehighlighter1_33_1013_Closed_Image.style.display='inline'; Codehighlighter1_33_1013_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_33_1013_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_33_1013_Closed_Text.style.display='none'; Codehighlighter1_33_1013_Open_Image.style.display='inline'; Codehighlighter1_33_1013_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_33_1013_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.cppblog.com/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_33_1013_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    CClientDC dc( static_cast</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">CMainFrame</span>
						<span style="COLOR: #000000">*&gt;</span>
						<span style="COLOR: #000000">(p));<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    dc.TextOut(</span>
						<span style="COLOR: #000000">50</span>
						<span style="COLOR: #000000">, </span>
						<span style="COLOR: #000000">100</span>
						<span style="COLOR: #000000">, </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">正在下载最新版本迅雷，请等待<img src="http://www.cppblog.com/images/dot.gif" /></span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">char</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">*</span>
						<span style="COLOR: #000000">Url </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">http://down.sandai.net:8080/Thunder5.1.5.189.exe</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    HINTERNET hSession </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> InternetOpen(</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">RookIE/1.0</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000"> (hSession </span>
						<span style="COLOR: #000000">!=</span>
						<span style="COLOR: #000000"> NULL)<br /><img id="Codehighlighter1_308_955_Open_Image" onclick="this.style.display='none'; Codehighlighter1_308_955_Open_Text.style.display='none'; Codehighlighter1_308_955_Closed_Image.style.display='inline'; Codehighlighter1_308_955_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_308_955_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_308_955_Closed_Text.style.display='none'; Codehighlighter1_308_955_Open_Image.style.display='inline'; Codehighlighter1_308_955_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_308_955_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cppblog.com/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_308_955_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        HINTERNET handle2 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> InternetOpenUrl(hSession, Url, NULL, </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">, INTERNET_FLAG_DONT_CACHE, </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (handle2 </span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #000000"> NULL)<br /><img id="Codehighlighter1_427_900_Open_Image" onclick="this.style.display='none'; Codehighlighter1_427_900_Open_Text.style.display='none'; Codehighlighter1_427_900_Closed_Image.style.display='inline'; Codehighlighter1_427_900_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_427_900_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_427_900_Closed_Text.style.display='none'; Codehighlighter1_427_900_Open_Image.style.display='inline'; Codehighlighter1_427_900_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_427_900_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cppblog.com/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_427_900_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            printf(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">%s\n</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">,Url);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">byte</span>
										<span style="COLOR: #000000"> Temp[MAXBLOCKSIZE];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            ULONG Number </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">1</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            FILE </span>
										<span style="COLOR: #000000">*</span>
										<span style="COLOR: #000000">stream;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">( (stream </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> fopen( </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">d:\\Thunder5.1.5.189.exe</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">, </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">wb</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000"> )) </span>
										<span style="COLOR: #000000">!=</span>
										<span style="COLOR: #000000"> NULL )</span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">这里只是个测试，因此写了个死的文件路径</span>
										<span style="COLOR: #008000">
												<br />
												<img id="Codehighlighter1_619_840_Open_Image" onclick="this.style.display='none'; Codehighlighter1_619_840_Open_Text.style.display='none'; Codehighlighter1_619_840_Closed_Image.style.display='inline'; Codehighlighter1_619_840_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
												<img id="Codehighlighter1_619_840_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_619_840_Closed_Text.style.display='none'; Codehighlighter1_619_840_Open_Image.style.display='inline'; Codehighlighter1_619_840_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">            </span>
										<span id="Codehighlighter1_619_840_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cppblog.com/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_619_840_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #0000ff">while</span>
												<span style="COLOR: #000000"> (Number </span>
												<span style="COLOR: #000000">&gt;</span>
												<span style="COLOR: #000000"> </span>
												<span style="COLOR: #000000">0</span>
												<span style="COLOR: #000000">)<br /><img id="Codehighlighter1_648_813_Open_Image" onclick="this.style.display='none'; Codehighlighter1_648_813_Open_Text.style.display='none'; Codehighlighter1_648_813_Closed_Image.style.display='inline'; Codehighlighter1_648_813_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_648_813_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_648_813_Closed_Text.style.display='none'; Codehighlighter1_648_813_Open_Image.style.display='inline'; Codehighlighter1_648_813_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
												<span id="Codehighlighter1_648_813_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
														<img src="http://www.cppblog.com/images/dot.gif" />
												</span>
												<span id="Codehighlighter1_648_813_Open_Text">
														<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    InternetReadFile(handle2, Temp, MAXBLOCKSIZE </span>
														<span style="COLOR: #000000">-</span>
														<span style="COLOR: #000000"> </span>
														<span style="COLOR: #000000">1</span>
														<span style="COLOR: #000000">, </span>
														<span style="COLOR: #000000">&amp;</span>
														<span style="COLOR: #000000">Number);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
														<span style="COLOR: #008000">//</span>
														<span style="COLOR: #008000">fprintf(stream, (const char*)Temp);</span>
														<span style="COLOR: #008000">
																<br />
																<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
														</span>
														<span style="COLOR: #000000">                    fwrite(Temp, </span>
														<span style="COLOR: #0000ff">sizeof</span>
														<span style="COLOR: #000000"> (</span>
														<span style="COLOR: #0000ff">char</span>
														<span style="COLOR: #000000">), Number , stream);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
												</span>
												<span style="COLOR: #000000">
														<br />
														<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                fclose( stream );<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            InternetCloseHandle(handle2);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            handle2 </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        InternetCloseHandle(hSession);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        hSession </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> NULL;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">CClientDC dc(this);</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    dc.TextOut(</span>
						<span style="COLOR: #000000">80</span>
						<span style="COLOR: #000000">, </span>
						<span style="COLOR: #000000">100</span>
						<span style="COLOR: #000000">, </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">下载完成。</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.cppblog.com/alantop/aggbug/4577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2006-03-25 00:27 <a href="http://www.cppblog.com/alantop/articles/4577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>