﻿<?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>IT博客-射手的博客</title><link>http://www.cnitblog.com/Archer/</link><description>学习Delphi,需要一个记录学习的博客,</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 07:11:28 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 07:11:28 GMT</pubDate><ttl>60</ttl><item><title>C++ primer 习题1.9-1.13</title><link>http://www.cnitblog.com/Archer/archive/2010/05/11/65949.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Tue, 11 May 2010 11:14:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2010/05/11/65949.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/65949.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2010/05/11/65949.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/65949.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/65949.html</trackback:ping><description><![CDATA[<p>&nbsp;</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.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()&nbsp;<br><img id=Codehighlighter1_35_690_Open_Image onclick="this.style.display='none'; Codehighlighter1_35_690_Open_Text.style.display='none'; Codehighlighter1_35_690_Closed_Image.style.display='inline'; Codehighlighter1_35_690_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_35_690_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_690_Closed_Text.style.display='none'; Codehighlighter1_35_690_Open_Image.style.display='inline'; Codehighlighter1_35_690_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;</span><span id=Codehighlighter1_35_690_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_35_690_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_43_446_Open_Image onclick="this.style.display='none'; Codehighlighter1_43_446_Open_Text.style.display='none'; Codehighlighter1_43_446_Closed_Image.style.display='inline'; Codehighlighter1_43_446_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_43_446_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_43_446_Closed_Text.style.display='none'; Codehighlighter1_43_446_Open_Image.style.display='inline'; Codehighlighter1_43_446_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #000000">1.9</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_43_446_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">/**/</span><span id=Codehighlighter1_43_446_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum&nbsp;=&nbsp;0;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;-100;i&nbsp;&lt;=&nbsp;100;i++)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=i;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;&lt;&lt;&nbsp;sum;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;1.10&nbsp;&nbsp;{*&nbsp;for()&nbsp;50-100&nbsp;natural&nbsp;number&nbsp;sum&nbsp;*}<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum&nbsp;=&nbsp;0&nbsp;;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=50&nbsp;;i&nbsp;&lt;=100;&nbsp;i++)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;i;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;&lt;&lt;&nbsp;sum&nbsp;&lt;&lt;std::endl;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;1.10&nbsp;{*&nbsp;while&nbsp;&nbsp;50-100&nbsp;natural&nbsp;number&nbsp;sum&nbsp;*}&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;sumA&nbsp;=0,&nbsp;i=50;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(i&nbsp;&lt;=&nbsp;100)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sumA&nbsp;+=&nbsp;i&nbsp;;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;&lt;&lt;&nbsp;sumA&nbsp;&lt;&lt;std::endl;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #000000">1.11</span><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;{*&nbsp;while&nbsp;output&nbsp;10&nbsp;-0*}</span><span style="COLOR: #008000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">i)<br><img id=Codehighlighter1_524_579_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_524_579_Open_Text.style.display='none'; Codehighlighter1_524_579_Closed_Image.style.display='inline'; Codehighlighter1_524_579_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_524_579_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_524_579_Closed_Text.style.display='none'; Codehighlighter1_524_579_Open_Image.style.display='inline'; Codehighlighter1_524_579_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_524_579_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_524_579_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">std::endl;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #000000">1.11</span><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;{*&nbsp;for()&nbsp;output&nbsp;10-0&nbsp;*}</span><span style="COLOR: #008000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;;&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">i&nbsp;;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;std::endl;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cnitblog.com/Archer/aggbug/65949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2010-05-11 19:14 <a href="http://www.cnitblog.com/Archer/archive/2010/05/11/65949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一段用指针排序的代码</title><link>http://www.cnitblog.com/Archer/archive/2009/05/19/57334.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Tue, 19 May 2009 15:51:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/05/19/57334.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/57334.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/05/19/57334.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/57334.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/57334.html</trackback:ping><description><![CDATA[<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.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdlib</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br><img id=Codehighlighter1_99_570_Open_Image onclick="this.style.display='none'; Codehighlighter1_99_570_Open_Text.style.display='none'; Codehighlighter1_99_570_Closed_Image.style.display='inline'; Codehighlighter1_99_570_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_99_570_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_99_570_Closed_Text.style.display='none'; Codehighlighter1_99_570_Open_Image.style.display='inline'; Codehighlighter1_99_570_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_99_570_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_99_570_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;score[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">],</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">PointerScore&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;score;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,temp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">score[i]);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(PointerScore</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i)&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(PointerScore</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">j)&nbsp;)<br><img id=Codehighlighter1_315_441_Open_Image onclick="this.style.display='none'; Codehighlighter1_315_441_Open_Text.style.display='none'; Codehighlighter1_315_441_Closed_Image.style.display='inline'; Codehighlighter1_315_441_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_315_441_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_315_441_Closed_Text.style.display='none'; Codehighlighter1_315_441_Open_Image.style.display='inline'; Codehighlighter1_315_441_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_315_441_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_315_441_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(PointerScore</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">j);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(PointerScore</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">j)&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(PointerScore</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(PointerScore</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i)&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;temp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</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.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,score[i]);&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">PAUSE</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;EXIT_SUCCESS;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cnitblog.com/Archer/aggbug/57334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-05-19 23:51 <a href="http://www.cnitblog.com/Archer/archive/2009/05/19/57334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初学结构类型_写的学生管理.</title><link>http://www.cnitblog.com/Archer/archive/2009/05/18/57313.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 18 May 2009 15:07:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/05/18/57313.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/57313.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/05/18/57313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/57313.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/57313.html</trackback:ping><description><![CDATA[<p>&nbsp;</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.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdlib</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br><img id=Codehighlighter1_122_645_Open_Image onclick="this.style.display='none'; Codehighlighter1_122_645_Open_Text.style.display='none'; Codehighlighter1_122_645_Closed_Image.style.display='inline'; Codehighlighter1_122_645_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_122_645_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_122_645_Closed_Text.style.display='none'; Codehighlighter1_122_645_Open_Image.style.display='inline'; Codehighlighter1_122_645_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_122_645_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_122_645_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Student<br><img id=Codehighlighter1_157_244_Open_Image onclick="this.style.display='none'; Codehighlighter1_157_244_Open_Text.style.display='none'; Codehighlighter1_157_244_Closed_Image.style.display='inline'; Codehighlighter1_157_244_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_157_244_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_157_244_Closed_Text.style.display='none'; Codehighlighter1_157_244_Open_Image.style.display='inline'; Codehighlighter1_157_244_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_157_244_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_157_244_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;&nbsp;No;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">Name;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;Sex;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">&nbsp;Score;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Student&nbsp;Stu[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;<br><img id=Codehighlighter1_324_432_Open_Image onclick="this.style.display='none'; Codehighlighter1_324_432_Open_Text.style.display='none'; Codehighlighter1_324_432_Closed_Image.style.display='inline'; Codehighlighter1_324_432_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_324_432_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_324_432_Closed_Text.style.display='none'; Codehighlighter1_324_432_Open_Image.style.display='inline'; Codehighlighter1_324_432_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_324_432_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_324_432_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_333_355_Open_Image onclick="this.style.display='none'; Codehighlighter1_333_355_Open_Text.style.display='none'; Codehighlighter1_333_355_Closed_Image.style.display='inline'; Codehighlighter1_333_355_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_333_355_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_333_355_Closed_Text.style.display='none'; Codehighlighter1_333_355_Open_Image.style.display='inline'; Codehighlighter1_333_355_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_333_355_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_333_355_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">LiPing</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">M</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">800.5</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">,<br><img id=Codehighlighter1_365_389_Open_Image onclick="this.style.display='none'; Codehighlighter1_365_389_Open_Text.style.display='none'; Codehighlighter1_365_389_Closed_Image.style.display='inline'; Codehighlighter1_365_389_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_365_389_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_365_389_Closed_Text.style.display='none'; Codehighlighter1_365_389_Open_Image.style.display='inline'; Codehighlighter1_365_389_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_365_389_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_365_389_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Wang&nbsp;Pan</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">F</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">400.5</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">,&nbsp; // 性别注意是字符要用 ' ' 扩住初始化<br><img id=Codehighlighter1_399_422_Open_Image onclick="this.style.display='none'; Codehighlighter1_399_422_Open_Text.style.display='none'; Codehighlighter1_399_422_Closed_Image.style.display='inline'; Codehighlighter1_399_422_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_399_422_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_399_422_Closed_Text.style.display='none'; Codehighlighter1_399_422_Open_Image.style.display='inline'; Codehighlighter1_399_422_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_399_422_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_399_422_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Archer</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">M</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">1000.5</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">&nbsp; //注意最后一个结构体变量初始后不要加","号<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_466_596_Open_Image onclick="this.style.display='none'; Codehighlighter1_466_596_Open_Text.style.display='none'; Codehighlighter1_466_596_Closed_Image.style.display='inline'; Codehighlighter1_466_596_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_466_596_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_466_596_Closed_Text.style.display='none'; Codehighlighter1_466_596_Open_Image.style.display='inline'; Codehighlighter1_466_596_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_466_596_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_466_596_Open_Text><span style="COLOR: #000000">{&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">No&nbsp;=&nbsp;%d&nbsp;,Name&nbsp;=&nbsp;%s,Sex&nbsp;=&nbsp;%c,Score&nbsp;=&nbsp;%6.1f&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stu[i].No&nbsp;,&nbsp;Stu[i].Name&nbsp;,&nbsp;Stu[i].Sex&nbsp;,&nbsp;Stu[i].Score);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">PAUSE</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;EXIT_SUCCESS;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<img src ="http://www.cnitblog.com/Archer/aggbug/57313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-05-18 23:07 <a href="http://www.cnitblog.com/Archer/archive/2009/05/18/57313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C 一个判断奇数最高效的方法</title><link>http://www.cnitblog.com/Archer/archive/2009/05/05/56946.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Tue, 05 May 2009 15:57:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/05/05/56946.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56946.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/05/05/56946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56946.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56946.html</trackback:ping><description><![CDATA[<span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> judge_number(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i_val)<br>{<br>&nbsp; </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (i_val</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #800080">1</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">1</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">奇数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp; </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">0</span><span style="COLOR: #000000">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">偶数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">}<br></span>&nbsp;比如<br><span style="COLOR: #0000ff"><img height=24 alt="" src="http://upload.wikimedia.org/math/1/0/a/10a2586c88f6b010aa3f2d5e176a01b4.png" width=440 border=0><br></span>&nbsp;最后一位是1,则位奇数.&nbsp;<br>&nbsp; i_val <span style="COLOR: #000000">&amp; </span><span style="COLOR: #800080">1&nbsp;与运算,如果返回为1,则为奇数</span><br>&nbsp;判断二进制位, <br>&nbsp; if语句在非0情况下执行语句一,<br>&nbsp;&nbsp; 在0的情况下执行语句2.
<img src ="http://www.cnitblog.com/Archer/aggbug/56946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-05-05 23:57 <a href="http://www.cnitblog.com/Archer/archive/2009/05/05/56946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C语言.计算输入整数分别各位的值.</title><link>http://www.cnitblog.com/Archer/archive/2009/04/24/56691.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Fri, 24 Apr 2009 05:32:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/24/56691.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56691.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/24/56691.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56691.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56691.html</trackback:ping><description><![CDATA[<p><a href="http://www.cnitblog.com/Archer/"></a>&nbsp;</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.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdafx.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;_tmain(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;_TCHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;argv[])<br><img id=Codehighlighter1_58_430_Open_Image onclick="this.style.display='none'; Codehighlighter1_58_430_Open_Text.style.display='none'; Codehighlighter1_58_430_Closed_Image.style.display='inline'; Codehighlighter1_58_430_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_58_430_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_58_430_Closed_Text.style.display='none'; Codehighlighter1_58_430_Open_Image.style.display='inline'; Codehighlighter1_58_430_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_58_430_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_58_430_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #008000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Value,a1,a2,a3,a4;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Enter&nbsp;Value:&nbsp;\t&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">Value);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;a1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Value</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">;&nbsp; //得到千位数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Value</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;&nbsp;//得到百位数 比如1200/100=12%10=2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Value&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;&nbsp;//得到十位数 &nbsp;比如1200 / 10 =120&nbsp;% 10 = 0 ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a4&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Value&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;&nbsp; //得到个位数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 比如1200 %10 =0<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">a1&nbsp;=&nbsp;%d,a2&nbsp;=&nbsp;%d,a3&nbsp;=&nbsp;%d,a4&nbsp;=&nbsp;%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,a1,a2,a3,a4);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cnitblog.com/Archer/aggbug/56691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-24 13:32 <a href="http://www.cnitblog.com/Archer/archive/2009/04/24/56691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习C语言的,第一个小程序</title><link>http://www.cnitblog.com/Archer/archive/2009/04/20/56496.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 20 Apr 2009 04:36:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/20/56496.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56496.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/20/56496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56496.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56496.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp; C语言与Delphi相比没有那么严格的语法, 可读性感觉没有Delphi强,代码清晰需要看自己的写法.<br>&nbsp;&nbsp; C语言是一个大小写识别的语言.所以在很多地方需要注意.</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"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">main()<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img id=Codehighlighter1_7_337_Open_Image onclick="this.style.display='none'; Codehighlighter1_7_337_Open_Text.style.display='none'; Codehighlighter1_7_337_Closed_Image.style.display='inline'; Codehighlighter1_7_337_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_7_337_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_7_337_Closed_Text.style.display='none'; Codehighlighter1_7_337_Open_Image.style.display='inline'; Codehighlighter1_7_337_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_7_337_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_7_337_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Value,ValueA,Sum;<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Please&nbsp;enter&nbsp;the&nbsp;digital&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Please&nbsp;enter&nbsp;Value&nbsp;&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">Value);<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Please&nbsp;enter&nbsp;ValueA&nbsp;&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ValueA);<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;Sum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Value</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">ValueA;<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Value&nbsp;=%d&nbsp;,&nbsp;ValueA&nbsp;=%d&nbsp;,Sum&nbsp;=&nbsp;%d&nbsp;\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,Value,ValueA,Sum);<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MaxValue&nbsp;This&nbsp;%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,Max(Value,ValueA));<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;getch();<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Max&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Value,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ValueA) /*自定义函数*/<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img id=Codehighlighter1_371_479_Open_Image onclick="this.style.display='none'; Codehighlighter1_371_479_Open_Text.style.display='none'; Codehighlighter1_371_479_Closed_Image.style.display='inline'; Codehighlighter1_371_479_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_371_479_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_371_479_Closed_Text.style.display='none'; Codehighlighter1_371_479_Open_Image.style.display='inline'; Codehighlighter1_371_479_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_371_479_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.cnitblog.com/Images/dot.gif"></span><span id=Codehighlighter1_371_479_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ValueCmp;<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(Value&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;ValueA)<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ValueCmp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Value;<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ValueCmp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ValueA;<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">(ValueCmp);<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/Archer/aggbug/56496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-20 12:36 <a href="http://www.cnitblog.com/Archer/archive/2009/04/20/56496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基本的数据类型.简单类型</title><link>http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 13 Apr 2009 03:22:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56306.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56306.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56306.html</trackback:ping><description><![CDATA[<span  style="color: rgb(0, 0, 102); font-family: verdana; "><div class="posttitle" style="padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "><br></div>&nbsp;<p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>类型在本质上是一种数据的名称<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当声明一个变量时<span>,</span>必须指定它的类型<span>.</span>类型决定了它的取值范围和可以进行的操作<span>(</span>运算<span>).</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>About types</span><span>（关于类型）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;<span style="background-color: yellow; ">类型可以分为:基本类型,一般类型.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>基本类型<span>:</span>不管是基于任何<span>CPU</span>和操作系统<span>,</span>数据取值范围和形式是相同的<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>一般类型<span>:</span>取值返回和形式是平台相关<span>.</span>它们对特定平台提供了优化的性能和轻便性<span>.</span>因实现的不同可能发生改变<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;&nbsp;&nbsp;<span style="background-color: yellow; ">类型又可以细致的分为:简单类型,字符串类型,结构类型,指针类型,过程类型和变体类型.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>标准函数<span>&nbsp;SizeOf</span>作用于所有变量和类型标志符，它返回一个整数，表明存储指定类型的数据所需要的内存数（字节）<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Simple types</span><span>（简单类型）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Simple types: Overview</span><span>（概述）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; background-color: yellow; "><span>简单类型包括有序类型和实数类型，它们定义有次序的数值集合<br></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;<span>Ordinal types</span><span>（有序类型）<br></span><span>&nbsp;<span style="background-color: yellow; ">有序类型包括整数、字符、布尔、枚举和子界类型</span></span><span>。有序类型定义一个有次序的数值集合<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>整数类型表示所有数字的一个子集</span>。<span style="background-color: yellow; ">一般（generic）整数类型是 Integer 和 Cardinal</span>，只要可能就尽量使用它们，因为它们对依赖的 CPU 和操作系统作了优化。</p><table cellspacing="0" cellpadding="0" width="584" border="1"><tbody><tr><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>类型</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>取值范围</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>格式</span></p></td></tr><tr><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Integer</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-2147483648..2147483647</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Cardinal</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..4294967295</span></p></td><td valign="top" width="195" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位无符号</span></p></td></tr></tbody></table><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>基本整数类型包括<span>&nbsp;Shortint</span>、<span>Smallint</span>、<span>Longint</span>、<span>Int64</span>、<span>Byte</span>、<span>Word&nbsp;</span>和<span>&nbsp;Longword</span>。</span></p><table cellspacing="0" cellpadding="0" width="601" border="1"><tbody><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>类型</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>取值范围</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>格式</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Shortint</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-128..127</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>8&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Smallint</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-32768..32767</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>16&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Longint</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-2147483648..2147483647</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Int64</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>-2^63..2^63-1</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>64&nbsp;</span><span>位有符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Byte</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..255</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>8&nbsp;</span><span>位无符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Word</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..65535</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>16&nbsp;</span><span>位无符号</span></p></td></tr><tr><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Longword</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>0..4294967295</span></p></td><td valign="top" width="200" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>32&nbsp;</span><span>位无符号</span></p></td></tr></tbody></table>&nbsp;注意：大多数使用整型参数的标准例程，会把 Int64 数值截取为 32 位。<br><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span style="background-color: yellow; ">当把整数类型的最后一个值增大或把第一个值减少时，结果将回到整数类型的开头或尾部。<br></span><br>Character types（字符类型）<br><br>基本字符类型分为: AnsiChar 和 WideChar。<br>AnsiChar 是 8 位字符集，它们将依照本地字符集的顺序排列，这可能是多字节的。<br>AnsiChar原先是根据 ANSI 字符集建立的，但现在扩展为可以指定本地字符集。<br>---------</p>WideChar 使用多于一个字节来表示每个字符。开头的 256 个 Unicode 字符对应于 ANSI 字符。&nbsp;<br>-------------------------------------------------------------------------------------------------------------<br>一般字符类型:Char.<br>一般字符类型是 Char，它相当于 AnsiChar。<br>&nbsp;内置函数Chr， 返回一个在AnsiChar或WideChar取值范围内任意一个整数的字符值。比如，Chr（65）返回字母 A。</span>
<img src ="http://www.cnitblog.com/Archer/aggbug/56306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-13 11:22 <a href="http://www.cnitblog.com/Archer/archive/2009/04/13/56306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TGgraphics-&gt;TCanvas-&gt;TPen,TBrush.TFont 简介</title><link>http://www.cnitblog.com/Archer/archive/2009/04/13/56304.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 13 Apr 2009 03:21:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/13/56304.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56304.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/13/56304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56304.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56304.html</trackback:ping><description><![CDATA[<span  style="color: rgb(0, 0, 102); font-family: verdana; "><div class="posttitle" style="padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "><br></div><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span style="color: rgb(51, 102, 255); ">Graphics</span>&nbsp;- (图形)<br>&nbsp; 图像控件及对象的定义都在<span style="color: rgb(51, 102, 255); ">Graphics</span>单元当中.<br>TCanvas对象,它实际上是一个画布,当用<span style="color: rgb(51, 102, 255); background-color: rgb(255, 255, 255); ">TPen&nbsp;</span><span style="color: rgb(255, 102, 0); ">(画笔)&nbsp;</span>对象和&nbsp;<span style="color: rgb(51, 102, 255); background-color: rgb(255, 255, 255); ">TBrush&nbsp;</span><span style="color: rgb(255, 102, 0); ">(画刷)&nbsp;</span>对象设置其属性值后就可以在画布上实现绘图的操作.</p><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 973px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span style="color: rgb(0, 0, 255); ">TGraphics</span>&nbsp;对象&nbsp;<br>TGraphics 对象是&nbsp;<span style="color: rgb(0, 0, 255); ">TBitmap(位图),TIcon(图标),TMetafile(图元)</span>对象的基类可储存任何一个对象.如果知道图像的类型,则将图像储存到相应的对象当中;<br><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 953px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">例:<br>Var<br>&nbsp;&nbsp; b:<span style="color: rgb(0, 0, 255); ">T</span><span style="color: rgb(0, 0, 255); ">Graphics</span>;<br>begin<br>&nbsp; b:=TJPEGimage.Crearte;<br>&nbsp; b.LoadFromFile('1.jpg');<br>&nbsp; b.SaveToFile('C:\1.jpg');<br>end;</div></div><br>------------------------------------------------------------------------------------------------------------------------------------------------------<br><span style="color: rgb(51, 102, 255); ">TCanvas</span>&nbsp; 画布<br>&nbsp;&nbsp; &nbsp;TCanvas对象被称为画布,可实现个各种绘图的功能,几乎所有组件的Canvas属性就是TCanvas对象.<br>在组件上绘制图形其实就是在组件的画布上面绘制图形.<br>TCanvas 对象下的绘制工具:&nbsp;&nbsp;<span style="color: rgb(51, 102, 255); ">Brush&nbsp;,Pen,Font&nbsp;</span>属性分别都&nbsp;<span style="color: rgb(51, 102, 255); ">TBrush,TPen,TFont<span style="color: rgb(255, 102, 0); ">(字体)</span></span>对象,用于定义绘制图形时的风格;&nbsp;<br>------------------------------------------------------------------------------------------------------------------------------------------------------<br><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 973px; word-break: break-all; padding-top: 4px; height: 106px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;<span style="color: rgb(0, 0, 255); ">TPen</span>&nbsp; 对象<br>&nbsp;含义: TPen 对象用于指定TCanvas对象在绘制线条和外围边框时所要使用的画笔种类,设置画笔的大小.颜色.样式.通过对Tpen对象相关属性的设置,可以将图一图形以不同的样式进行绘制;<br><br>TPen 主要属性有:&nbsp;<span style="color: rgb(0, 0, 255); ">Color (颜色),Style(风格),Width(宽度),Mode(样式).{属性详细参数在第285页}</span></div><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 973px; word-break: break-all; padding-top: 4px; height: 89px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span style="color: rgb(0, 0, 255); ">TBrush</span>&nbsp;对象<br>含义:TBrush 对象又称画刷,用指定的<span style="color: rgb(255, 0, 0); ">颜色<span style="color: rgb(0, 0, 0); ">和</span>图案<span style="color: rgb(0, 0, 0); ">对矩形,随圆或则图形进行填充. 设置TBrush对象的属性来制定填充TCanvas对象时使用的颜色和样式或图位;<br><br>TBrush 主要属性有:&nbsp;<span style="color: rgb(0, 0, 255); ">Color (颜色),Style(风格),Bitmap(位图).{属性详细参数在第287页};<br><br>Bitmap&nbsp;<span style="color: rgb(0, 0, 0); ">此属性是用图片来填充指定的图形(画布);<br></span></span></span></span></div><br><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 973px; word-break: break-all; padding-top: 4px; height: 89px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span style="color: rgb(0, 0, 255); ">TFont</span>&nbsp; 对象<br>含义: TFont<span>&nbsp;&nbsp;</span>对象,又称字体,设置该属性可以改变指定文本的字体外观;<br><br>TFont 主要属性有:&nbsp;<span style="color: rgb(0, 0, 255); ">Name(名称,既字体名称),Size(大小),Style(风格),Color(颜色). Options<span style="color: rgb(0, 0, 255); ">(<font color="#000000" style="color: rgb(0, 0, 255); ">选择项</font>).{属性详细设</span>置参考191页}</span></div><div><font  color="#0000FF" size="3"><span  style="font-size: 13px;"><br></span></font></div></span>
<img src ="http://www.cnitblog.com/Archer/aggbug/56304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-13 11:21 <a href="http://www.cnitblog.com/Archer/archive/2009/04/13/56304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows API 函数: SetClassLong</title><link>http://www.cnitblog.com/Archer/archive/2009/04/13/56305.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 13 Apr 2009 03:21:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/13/56305.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56305.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/13/56305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56305.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56305.html</trackback:ping><description><![CDATA[<span  style="color: rgb(0, 0, 102); font-family: verdana; "><div class="posttitle" style="padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "><br></div><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;SetClassLong&nbsp;&nbsp;<span style="font-size: 10pt; font-family: 'Comic Sans MS'; ">常用于替换光标样式,增添美观性;</span></p><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 777px; word-break: break-all; padding-top: 4px; height: 114px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span style="color: rgb(0, 0, 0); ">DWORD&nbsp;SetClassLong(<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;HWND&nbsp;hWnd,&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); ">//</span><span style="color: rgb(0, 128, 0); ">&nbsp;handle&nbsp;of&nbsp;window&nbsp;(窗口句柄)</span><span style="color: rgb(0, 128, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); ">&nbsp;nIndex,&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); ">//</span><span style="color: rgb(0, 128, 0); ">&nbsp;index&nbsp;of&nbsp;value&nbsp;to&nbsp;change (设置的属性)</span><span style="color: rgb(0, 128, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;dwNewLong&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); ">//</span><span style="color: rgb(0, 128, 0); ">&nbsp;new&nbsp;value (设置的属性的值)</span><span style="color: rgb(0, 128, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span></div><br><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 777px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span style="color: rgb(0, 0, 0); ">nlndex&nbsp;&nbsp;属性索引</span></div><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 777px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span>　　GCL_CBCLSEXTRA：<br>//设置与类相关的尺寸的字节大小。设定该值不改变己分配的额外字节数。<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">　　GCL_CBWNDEXTRA：<br>//设置与类中的每一个窗口相关的尺寸的字节大小。设定该值不改变已分配额外字节数。查看如何进入该内存，参看SetWindowLOng。<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">　　GCL_HERBACKGROUND：<br>//替换与类有关的背景刷子的句柄。<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">　　GCL_HCURSOR：<br>//替换与类有关的光标的句柄。<span style="color: red; ">{替换指定窗口中的光标图标,dwNewLong 读取光标位置 如 '1.ani'}</span><br>GCL_HICON：<br>//替换与类有关的图标的句柄。&nbsp;<span style="color: rgb(255, 0, 0); ">{<font color="#ff0000">替换指定窗口中的程序图标,dwNewLong 读取图标位置 如 '1.ico'</font>}</span>　　<br>GCL_HMODULE：<br>//替换注册类的模块的句柄。<br>GCL_STYLE：<br>//替换窗口类的风格位。<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">　　CGL_MENUNAME&nbsp;：<br>//替换菜单名字符串的地址。该字符串标识与类有关的菜单资源。<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">　　GCL_WNDPROC&nbsp;：<br>//替换与窗口类有关的窗口过程的地址。<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span></div><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">例:<br></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 777px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><span style="color: rgb(0, 0, 0); ">unit&nbsp;Unit1;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 255); ">interface</span><span style="color: rgb(0, 0, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">uses<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,&nbsp;Dialogs,<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;StdCtrls,&nbsp;jpeg,&nbsp;ExtCtrls,xpman;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">type<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;TForm1&nbsp;</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">&nbsp;</span><span style="color: rgb(0, 0, 255); ">class</span><span style="color: rgb(0, 0, 0); ">(TForm)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;Button1:&nbsp;TButton;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;Image1:&nbsp;TImage;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;Image2:&nbsp;TImage;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;FormCreate(Sender:&nbsp;TObject);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;Button1Click(Sender:&nbsp;TObject);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255); ">private</span><span style="color: rgb(0, 0, 0); "><br><img id="Codehighlighter1_333_356_Open_Image" onclick="this.style.display='none'; Codehighlighter1_333_356_Open_Text.style.display='none'; Codehighlighter1_333_356_Closed_Image.style.display='inline'; Codehighlighter1_333_356_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_333_356_Open_Text"><span style="color: rgb(0, 0, 0); ">{&nbsp;Private&nbsp;declarations&nbsp;}</span></span><span style="color: rgb(0, 0, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255); ">public</span><span style="color: rgb(0, 0, 0); "><br><img id="Codehighlighter1_371_393_Open_Image" onclick="this.style.display='none'; Codehighlighter1_371_393_Open_Text.style.display='none'; Codehighlighter1_371_393_Closed_Image.style.display='inline'; Codehighlighter1_371_393_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_371_393_Open_Text"><span style="color: rgb(0, 0, 0); ">{&nbsp;Public&nbsp;declarations&nbsp;}</span></span><span style="color: rgb(0, 0, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;end;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">var<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;Form1:&nbsp;TForm1;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">implementation<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img id="Codehighlighter1_439_448_Open_Image" onclick="this.style.display='none'; Codehighlighter1_439_448_Open_Text.style.display='none'; Codehighlighter1_439_448_Closed_Image.style.display='inline'; Codehighlighter1_439_448_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span id="Codehighlighter1_439_448_Open_Text"><span style="color: rgb(0, 0, 0); ">{$R&nbsp;</span><span style="color: rgb(0, 0, 0); ">*</span><span style="color: rgb(0, 0, 0); ">.DFM}</span></span><span style="color: rgb(0, 0, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">procedure&nbsp;TForm1.FormCreate(Sender:&nbsp;TObject);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">var<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;HNewCursor:&nbsp;Hcursor;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">begin<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;HNewcursor:</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">LoadCursorfromfile(</span><span style="color: rgb(0, 0, 0); ">'</span><span style="color: rgb(0, 0, 0); ">1.ANI</span><span style="color: rgb(0, 0, 0); ">'</span><span style="color: rgb(0, 0, 0); ">);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); ">//</span><span style="color: rgb(0, 128, 0); ">调用API函数装载动画光标文件,ANI文件路径请根据自己的实际情况进行调整</span><span style="color: rgb(0, 128, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 0); ">&nbsp;&nbsp;SetClassLong(Form1.Handle,GCL_HCURSOR,<span style="color: rgb(128, 0, 0); ">HNEWCURSOR</span>);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); ">//</span><span style="color: rgb(0, 128, 0); ">替换光标为制定光标.</span><span style="color: rgb(0, 128, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 0); ">end;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">begin<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;HoldCursor:</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">SetClassLong(Form1.Handle,GCL_HCURSOR,</span><span style="color: rgb(128, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">);<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;Close;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); ">//</span><span style="color: rgb(0, 128, 0); ">在结束程序前一定不要忘记恢复光标,<span style="color: rgb(128, 0, 0); ">属性值0我的理解应该是还原为系统光标</span></span><span style="color: rgb(0, 128, 0); "><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span><span style="color: rgb(0, 0, 0); ">end;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align="top" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; ">end.</span></div><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p></span>
<img src ="http://www.cnitblog.com/Archer/aggbug/56305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-13 11:21 <a href="http://www.cnitblog.com/Archer/archive/2009/04/13/56305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Delphi library (库) 的学习</title><link>http://www.cnitblog.com/Archer/archive/2009/04/13/56302.html</link><dc:creator>Archer</dc:creator><author>Archer</author><pubDate>Mon, 13 Apr 2009 03:20:00 GMT</pubDate><guid>http://www.cnitblog.com/Archer/archive/2009/04/13/56302.html</guid><wfw:comment>http://www.cnitblog.com/Archer/comments/56302.html</wfw:comment><comments>http://www.cnitblog.com/Archer/archive/2009/04/13/56302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Archer/comments/commentRss/56302.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Archer/services/trackbacks/56302.html</trackback:ping><description><![CDATA[<span  style="color: rgb(0, 0, 102); font-family: verdana; "><div class="posttitle" style="padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "><br></div>&nbsp;<p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;</span>Delphi Libraries(Delphi&nbsp;</span><span>库<span>)</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>简介<span>:</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Object Pascal&nbsp;</span><span>中&#8220;动态掉入库（<span>dynamically loadable library</span>）&#8221;<span></span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span><span>&nbsp;&nbsp;&nbsp;</span></span><span>在<span>&nbsp;Windows</span>下 以名称为&#8220;动态链接库&#8221; 后缀名为&#8220;<span>.DLL</span>&#8221; 形式的文件出现在系统当中<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span><span>&nbsp;&nbsp;&nbsp;</span></span>在<span>&nbsp;Linux&nbsp;<span>&nbsp;&nbsp;</span></span>下以名称为&#8220;共享目标库&#8221;后缀名以&#8220;<span>.so</span>&#8221; 形式的文件出现在系统当中<span>.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">本文主要讲解的是在<span>Windows&nbsp;</span>中使用<span>&nbsp;Borland Delphi&nbsp;</span>开发软件 进行对&nbsp;<span>&#8221;</span>动态链接库<span>-DLL</span><span>&#8221;</span><span>&nbsp;</span>规则讲解<span>.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Libraries&nbsp;</span><span>（库）的定义<span>:&nbsp;</span>它是一个例程的集合<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Libraries&nbsp;</span><span>（库）的形式<span>:&nbsp;</span>像单元文件一样<span>,&nbsp;</span>&#8220;动态链接库<span>&#8221;</span>包含共享的代码和资源<span>,</span>但这个库是一个可以单独编译的可执行文件<span>,</span>它在运行时被连接到使用它的程序当中<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>调用动态链接库<span>:</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span><span>&nbsp;&nbsp;&nbsp;</span></span><span>在<span>Delphi&nbsp;</span>当中<span>&nbsp;Windows&nbsp;</span>系统例程<span>(Windows API)&nbsp;</span>存放在<span>Uses&nbsp;</span>的子单元当中<span>.</span>事先就给开发者们把<span>API</span>函数连接到了<span>Delphi</span>的系统单元文件当中<span>(</span>系统单元是不可见的<span>).</span>方便调用<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>你可以直接调用操作系统的例程<span>,</span>但他们直到运行时才被连接到你的程序当中<span>.</span>这说明在编译程序时它们不会被编译验证<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>这也说明当你调入一个&#8220;动态链接库<span>&#8221;</span>中的例程是不会被编译验证的<span>.</span>当你调用外部&#8220;动态链接库<span>&#8221;,</span>如果&#8220;动态链接库<span>&#8221;</span>没有相应的例程则会出现无法定位而报错<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>调用动态链接库有两种调用方法<span>: 1.</span>静态调入<span>&nbsp;2.</span>动态调入<span></span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>1.</span><span>静态调入</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>使用<span>&nbsp;external&nbsp;</span>指示字声明<span>&#8221;</span>动态链接库<span>&#8221;</span>名称<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>在<span>&nbsp;Windows&nbsp;</span>下：<span>&nbsp;procedure DoSomething; external 'MYLIB.DLL';</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>在<span>&nbsp;Linux&nbsp;</span>下：&nbsp;<span><span>&nbsp;&nbsp;</span>&nbsp;procedure DoSomething; external 'mylib.so'; &nbsp;</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>需要注意的有<span>:</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>1.MyLIB.DLL&nbsp;</span><span>或者<span>&nbsp;mylib.so&nbsp;</span>这<span>2</span>个文件必须在程序的根目录下才能顺利调入<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>2.</span><span>例程名也必须与&#8220;动态链接库<span>&#8221;</span>当中的例程名相同才能顺利的调入<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>若你在程序中包含这个声明，&#8220;动态掉入库<span>&#8221;</span>在程序启动时被调入一次<span>,</span><u>在程序的整个运行期间，标志符<span>&nbsp;DoSomething&nbsp;</span>总是指同一个共享库中的同一个入口点。</u></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><u><span>静态调入的缺点<span>:</span>例程占用内存<span>,&nbsp;</span>直到程序结束<span>.</span></span></u></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>2.</span><span>动态调入</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>动态调入就是利用操作系统中的库函数<span>(API</span>函数<span>)</span>来调入一个外部</span><span>&#8220;</span><span>动态链接库<span>&#8221;</span>中的例程<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>通常我们使用<span>&nbsp;LoadLibrary,FreeLibrary,GetProcAddress.&nbsp;</span>这<span>3</span>个函数来动态调用一个外部的&#8220;动态链接库<span>&#8221;</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>{</span><span>这<span>3</span>个函数的使用方法我已经详细的写在了博客当中<span>.</span>连接地址为<span>:</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span><a href="http://www.cnitblog.com/Archer/archive/2009/03/28/55831.html" style="font-weight: bold; color: rgb(0, 107, 173); text-decoration: none; ">http://www.cnitblog.com/Archer/archive/2009/03/28/55831.html</a></span><span>}</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><u><span>动态调入的优点<span>:</span>解决了静态调用时<span>,</span>例程占用内存的问题<span>.</span></span></u></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Writing dynamically loadable libraries</span><span>（编写动态调入库）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Writing dynamically loadable libraries</span><span>（编写动态调入库）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span><span>&nbsp;&nbsp;&nbsp;</span>&#8220;</span><span>动态链接库<span>&#8221;</span>与程序文件唯一不同的就是<span>:&nbsp;</span>以关键字<span>Library&nbsp;</span>开始<span>.</span>取代了<span>(program).</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>编写动态链接库需要注意以下几点<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><u><span>1.</span></u><u><span>只有被库明确输出<span>(exports)</span>的例程才能被其他库或程序导入</span></u><span>.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><u><span>2.</span><span>&nbsp;</span></u><u><span>若要你的库对其它语言编写的程序是可见的，最安全的办法是在声明输出函数时指定&nbsp;<span>stdcal</span><span>&nbsp;</span>调用约定，其它语言或许不支持<span>&nbsp;Object Pascal&nbsp;</span>默认的<span>&nbsp;register</span>调用约定</span></u><span>。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>库的源文件通常简化为包含一个<span>&nbsp;uses&nbsp;</span>子句、一个<span>&nbsp;exports&nbsp;</span>子句和初始化代码<span>(</span>指的是过程和函数的<span>block</span>代码<span>)</span>。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>The exports clause</span><span>（<span>exports&nbsp;</span>子句）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当一个例程在<span>&nbsp;exports</span>子句中列出时，它将被输出<span>,</span>才能被其他库或程序 导入<span>,</span>调用<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>exports entry1, ..., entryn;</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>每个<span>&nbsp;entry</span>可以是一个过程、函数或变量（它必须在<span>&nbsp;exports&nbsp;</span>子句之前声明）的名称，后面跟参数列表（只有当输出重载的例程时）和一个可选的<span>&nbsp;name&nbsp;</span>说明符，你可以使用单元名限定过程或函数的名称。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>需要注意的有<span>:</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>1.&nbsp;</span><span>&#8220;动态链接库<span>&#8221;</span>输出例程建立不要使用索引说明符<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>2.&nbsp;</span><span>名称说明符包括指示字<span>name&nbsp;</span>后面跟一个<u>字符串常量</u><span>.</span></span><span>&nbsp;</span><span>若<span>entry</span>没有名称说明符，例程被输出时使用声明的原始名称，包括拼写和大小写。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;exports</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;DoSomethingABC name 'DoSomething';</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当在动态调入库中输出重载的函数或过程时，你必须在<span>&nbsp;exports&nbsp;</span>子句中指定它的参数列表，</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>exports</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;Divide(X, Y: Integer) name 'Divide_Ints',</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;Divide(X, Y: Real) name 'Divide_Reals';</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Library initialization code</span><span>（库初始化代码）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>一个库的块（<span>block</span>）所包含的语句构成了库的初始化代码，每当库被调入时，这些代码执行一次。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Global variables in a library</span><span>（库中的全局变量）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>在库中声明的全局变量不能被<span>object Pascal&nbsp;</span>程序导入<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>一个库一次能被多个程序使用<span>(</span>调用<span>)</span>，每一个程序都把这个库加载到自己进程空间<span>(</span>内存空间<span>)</span>里<span>(</span>这是一个库的拷贝<span>),</span>且每个拷贝有自己的全局变量集合。对于在多个库间（或一个库的多个实例间）<span>共享内存，它们必须使用内存映射文件。</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>这里说明库是被加载到内存当中的<span>.</span>在内存中文件是以<span>16</span>进制定位内存地址的<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Libraries and system variables</span><span>（库和系统变量）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>在<span>&nbsp;System</span>单元声明的几个变量对自己引入的程序库有特殊影响<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>1.IsLibrary&nbsp;</span><span>变量</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>IsLibrary</span><span>变量是在<span>System.pas</span>单元中定义的全局标志变量之一。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>使用<span>&nbsp;IsLibrary&nbsp;</span>变量来确定代码是作为<span>&lt;</span>程序<span>&gt;</span>还是<span>&lt;</span>库<span>&gt;</span>执行，<span>IsLibrary&nbsp;</span>在程序中总是&nbsp;<span>False</span>，在库中总是&nbsp;<span>True;</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>如果<span>IsLibrary</span>的值为<span>True</span>则表明程序模块<span>(</span>自身<span>)</span>是一个动态链接库，反之就是一个可执行程序。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;&nbsp;</span><span>此函数常用来判断调用的程序模块<span>(</span>自身<span>)</span>是&#8220;动态链接库&#8221;或者是&#8220;可执行程序&#8221;<span>.</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;2.</span><span>&nbsp;</span><span>Hinstance (Handle instance&nbsp;</span><span>句柄实例<span>)</span></span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>hinstance</span><span>是这个</span><span>&lt;</span><span>应用程序</span><span>&gt;</span><span>的</span><span>&lt;</span><span>实例句柄</span><span>&gt;</span><span>，也就是系统将可执行文件的映象加载到进程空间的基本地址，如果需要程序内包含的</span><span>&lt;</span><span>资源</span><span>(</span><span>如图片资源</span><span>)&gt;</span><span>的时候就需要这个实例句柄了。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当你启动一个程序时，操作系统会给这个程序起一个名字，这个名字就叫</span><span>&nbsp;Handle</span><span>。</span><span><br></span><span>当你启动一个程序时，操作系统会将这个程序装载到某个内存空间，这个空间的起始地址就是</span><span>HInstance</span><span>。在</span><span>&nbsp;NT&nbsp;</span><span>系统这个</span><span>&nbsp;HInstance&nbsp;</span><span>一般都是</span><span>&nbsp;400000h</span><span>。</span></p><table cellspacing="0" cellpadding="0" width="589" border="1"><tbody><tr><td valign="top" width="589" style="font-size: 12px; "><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Handle</span><span>是</span><span>windows</span><span>系统里的句柄，是系统识别目标对象的一个标识，对于整个操作系统来说各句柄应该是唯一的，不会重复。而且</span><span>Handle</span><span>一般是由</span><span>Windows</span><span>系统分配的，程序无法控制。</span><span><br></span><span>而</span><span>HInstance&nbsp;</span><span>是程序内部的句柄，实际值即</span><span>Windows</span><span>系统给应用程序分配的内存基址，也是该程序体内（包括主体</span><span>EXE</span><span>和调用的</span><span>DLL</span><span>）相互识别调用的一个标识，对于程序内部来书说，</span><span>HInstance</span><span>是唯一的，不会重复。但对于</span><span>Windows</span><span>系统来说，各程序</span><span>EXE</span><span>的</span><span>HInstance</span><span>大部分可以说是一样，一般都是默认的</span><span>$00400000</span><span>。这个值在大多数编译器中都可以修改。如</span><span>DELPHI</span><span>里可以在工程</span><span>Options-&gt;Link-&gt;ImageBase</span><span>里修改。</span><span><br></span><span>简单来说，大概应该可以这样来理解，</span><span>Handle</span><span>可以说是</span><span>Windows</span><span>对象句柄，</span><span>HInstance</span><span>可以说是程序模块句柄。</span>&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p></td></tr></tbody></table><p align="left" style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>参考</span><span>:</span><span>&nbsp;{</span><span>http://www.delphibbs.com/delphibbs/dispq.asp?lid=3136263}</span></p><p align="left" style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p align="left" style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>3.</span><span>&nbsp;</span><span>DLLProc</span></p><p align="left" style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;DLLProc&nbsp;</span><span>变量允许一个库监测</span><span>(</span><span>监视</span><span>)</span><span>操作系统对它的入口点（</span><span>entry point</span><span>）的调用，这个特征通常只是由支持</span><span>&lt;</span><span>多线程</span><span>&gt;</span><span>的库使用。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>在过程体中，你能依据哪个参数被传递给过程来指定要采取地行动。</span></p><p align="left" style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>要监测操作系统调用，创建一个回调过程，它接收一个整数参数，</span><span></span></p><p align="left" style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>此函数有以下几个参数</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>　</span><span>&nbsp;<span>DLL_Process_Attach:&nbsp; //</span></span><span>整个</span><span>DLL</span><span>的初始化代码</span><span>&nbsp;<br></span><span>　</span><span>&nbsp;<span>DLL_Process_Detach:&nbsp; //</span></span><span>该值表示库作为完全退出的结果或调用</span><em><span>FreeLibrary</span></em><span>的结果，从调用库的进程中被分离。</span><span>&nbsp;{</span><span>表示对</span><span>DLL</span><span>的善后代码</span><span>}</span><span>&nbsp;<br></span><span>　</span><span>&nbsp;<span>DLL_Thread_Attach:&nbsp; //</span></span><span>该值表示当前进程创建了一个新的线程（仅适用于</span><span>Windows</span><span>）。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>　</span><span>&nbsp;<span>DLL_Thread_Detach: &nbsp;//</span></span><span>该值表示线程完全退出（仅适用于</span><span>Windows</span><span>）</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Exceptions and runtime errors in libraries</span><span>（库的异常和运行时错误）</span><span>&nbsp;</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>当在动态链接库中有发生异常</span><span>,&lt;</span><span>但没有处理时</span><span>&gt;,</span><span>它把异常传播到库的外面到达调用者</span><span>.</span><span>则出现错误提示</span><span>,</span><span>导致程序结束</span><span>.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>&nbsp;</span><span>如果调用程序或库是用</span><span>&nbsp;object Pascal&nbsp;</span><span>编写的</span><span>.&nbsp;</span><span>可通过用</span><span>tey...except&nbsp;</span><span>语句处理这些异常</span><span>.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>如果调用程序或库是用其它语言编写的，异常被当作操作系统的异常（异常代码：</span><span>$0EEDFACE</span><span>）进行处理。在操作系统异常记录的</span><span>&nbsp;ExceptionInformation&nbsp;</span><span>数组的第一个入口中，包含了异常地址，第二个入口包含一个指向</span><span>&nbsp;Object Pascal&nbsp;</span><span>异常对象的引用。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>通常，你不应该使异常扩散到库的外面。在</span><span>&nbsp;Windows&nbsp;</span><span>下，</span><span>Delphi&nbsp;</span><span>异常映射到操作系统的异常模型</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>若一个库没有使用</span><span>&nbsp;SysUtils&nbsp;</span><span>单元，它不支持异常处理。</span><span>这种情况下，若库发生运行时错误，调用程序将终止。因为库没有办法知道它是否从一个</span><span>&nbsp;Object Pascal&nbsp;</span><span>程序进行调用，它不能调用程序的退出过程，程序只是简单地被终止，并从内存中清除。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>Shared-memory manager (</span><span>共享内存管理器</span><span>)</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当使用</span><span>Delphi&nbsp;</span><span>自带的内存管理器时</span><span>:</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>在</span><span>Windows&nbsp;</span><span>下</span><span>.&nbsp;</span><span>如果</span><span>DLL&nbsp;</span><span>输出的例程是长字符串或者动态数组作为参数或者作为函数返回值</span><span>(</span><span>不管是直接的</span><span>,</span><span>还是通过记录或对象封装的</span><span>),</span><span>那么</span><span>DLL&nbsp;</span><span>和它的客户端程序</span><span>(</span><span>或</span><span>DLL)</span><span>必须使用</span><span>ShareMem&nbsp;</span><span>单元</span><span>.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>(</span><span>由于库和程序之间内存管理的管理域限制</span><span>,</span><span>所以需要申请</span><span>ShareMem</span><span>单元</span><span>,</span><span>使他们能够共用一个内存管理器</span><span>)</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>当一个程序或</span><span>&nbsp;DLL&nbsp;</span><span>调用</span><span>&nbsp;New</span><span>或</span><span>&nbsp;GetMem</span><span>分配内存，而在另一个模块中调用</span><span>&nbsp;Dispose</span><span>或</span><span>&nbsp;FreeMem</span><span>来释放内存时。需要用到</span><span>ShareMem</span><span>单元</span><span>,.</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>ShareMem</span><span>单元应当在程序或库的</span><span>&nbsp;uses</span><span>子句中第一个列出。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>ShareMem&nbsp;</span><span>是</span><span>&nbsp;BORLANDMM.DLL&nbsp;</span><span>内存管理器的接口单元，它允许在模块间共享动态分配的内存。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>BORLANDMM.DLL</span><span>必须连同使用</span><span>ShareMem</span><span>单元的程序和</span><span>DLL</span><span>一同发布。</span><span>&nbsp;</span><span>当程序或</span><span>DLL</span><span>使用</span><span>ShareMem</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>时，它的内存管理器被</span><span>&nbsp;BORLANDMM.DLL&nbsp;</span><span>中的取代。</span></p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; ">&nbsp;</p><p style="font-size: small; color: rgb(0, 0, 0); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; word-wrap: break-word; "><span>现在常用的内存管理器有</span><span>FastShareMem</span></p><br><br>为了方便阅读提供PFD版本:&nbsp;<a href="http://www.cnitblog.com/Files/Archer/Delphi%20library.zip" style="font-weight: bold; color: rgb(0, 107, 173); text-decoration: none; ">http://www.cnitblog.com/Files/Archer/Delphi%20library.zip</a></span>
<img src ="http://www.cnitblog.com/Archer/aggbug/56302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Archer/" target="_blank">Archer</a> 2009-04-13 11:20 <a href="http://www.cnitblog.com/Archer/archive/2009/04/13/56302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>