﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-蓦然回首，那人却在灯火阑珊处</title><link>http://www.cppblog.com/icefairy/</link><description>默默走在编译的路上，不知道何时才生成.exe文件</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:08:34 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:08:34 GMT</pubDate><ttl>60</ttl><item><title>网页账号 自动登录 学习笔记(一)</title><link>http://www.cppblog.com/icefairy/archive/2009/09/22/96909.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Tue, 22 Sep 2009 02:01:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/09/22/96909.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/96909.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/09/22/96909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/96909.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/96909.html</trackback:ping><description><![CDATA[使用wininet<br>一般流程:<br>1,
<pre class=libCScode id=ctl00_MTContentSelector1_mainContentContainer_ctl03 style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">BOOL AFXAPI AfxParseURLEx(
LPCTSTR pstrURL,
DWORD&amp; dwServiceType,
CString&amp; strServer,
CString&amp; strObject,
INTERNET_PORT&amp; nPort,
CString&amp; strUsername,
CString&amp; strPassword,
DWORD dwFlags = 0
);  使用该函数解析URP</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">其中 <span class=nonLinkTerms><span class=parameter><em>strServer  :</em></span></span>The first segment of the URL following the service type.</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">2,</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">GetHttpConnection()</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">3,</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">OpenRequest()</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">4,</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">AddRequestHeaders()　通用头 域包含请求和响应消息都支持的头域</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">5,</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">SendRequest</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">6,</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">QueryInfo</pre>
<pre class=libCScode style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">&nbsp;</pre>
<img src ="http://www.cppblog.com/icefairy/aggbug/96909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-09-22 10:01 <a href="http://www.cppblog.com/icefairy/archive/2009/09/22/96909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Static控件背景透明时文字覆盖问题</title><link>http://www.cppblog.com/icefairy/archive/2009/05/20/83485.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Wed, 20 May 2009 08:24:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/05/20/83485.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/83485.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/05/20/83485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/83485.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/83485.html</trackback:ping><description><![CDATA[<p align=center><font face=宋体 size=2><br></font><font color=#ffa500><span>用</span></font><font color=#ffa500><span>pDC-&gt;SetBkMode(TRANSPARENT);<br></span><span>设置透明后</span><span>,</span><span>要改变控件的文字就会发生文字重叠</span><span>,</span><span>如果不使用透明就不会</span><span>,</span></font><span><font color=#000080><font color=#ffa500>请问在透明状态下改变文字如何不发生重叠?</font><br></font></span><span><br><br></span><span>static</span><span>的背景已经是透明的了，那么残留的文本应该是画在</span><span>static</span><span>的父窗口上的。<br></span></p>
<p><strong><span><br>办法有了：在给</span><span>static </span></strong><strong><span>设置新的文本之后（不是之前</span><span>!</span></strong><strong><span>）刷新<span>父</span>窗口。</span></strong></p>
<p><span><font color=#ffa500>void CTestStaticDlg::OnTimer(UINT nIDEvent) </font></span></p>
<p><span><font color=#ffa500>{</font></span></p>
<p><span><font color=#ffa500><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>CString strTime;</font></span></p>
<p><span><font color=#ffa500><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>CTime time = CTime::GetCurrentTime();</font></span></p>
<p><font color=#ffa500><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>strTime = time.Format("%y</span><span>年</span><span>%m</span><span>月</span><span>%d</span><span>日</span><span> %H:%M:%S");</span></font></p>
<p><span><font color=#ffa500>&nbsp;</font></span></p>
<p><span><font color=#ffa500><font size=+0><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GetDlgItem(IDC_STATIC)-&gt;SetWindowText(strTime);</font></font></span></p>
<p><span><font color=#ffa500><font size=+0><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GetDlgItem(IDC_STATIC)-&gt;GetParent()-&gt;RedrawWindow();</font> //</font><font color=#008000>就这两句话而已，呵呵</font></span></p>
<p><span><font color=#ffa500><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>CDialog::OnTimer(nIDEvent);</font></span></p>
<p><span><font color=#ffa500>}</font></span></p>
<img src ="http://www.cppblog.com/icefairy/aggbug/83485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-05-20 16:24 <a href="http://www.cppblog.com/icefairy/archive/2009/05/20/83485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对话框中接受键盘消息</title><link>http://www.cppblog.com/icefairy/archive/2009/04/23/80859.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Thu, 23 Apr 2009 08:20:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/04/23/80859.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/80859.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/04/23/80859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/80859.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/80859.html</trackback:ping><description><![CDATA[PreTranslateMessage(MSG* &nbsp; pMsg) &nbsp; &nbsp; <br>&nbsp; { &nbsp; <br>&nbsp; if( &nbsp; pMsg-&gt;message &nbsp; == &nbsp; WM_KEYDOWN &nbsp; ) &nbsp; <br>&nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; switch( &nbsp; pMsg-&gt;wParam &nbsp; ) &nbsp; <br>&nbsp; { &nbsp; <br>&nbsp; case &nbsp; VK_RETURN: &nbsp; <br>&nbsp; AfxMessageBox("return"); &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; return &nbsp; CDialog::PreTranslateMessage(pMsg); &nbsp; <br>&nbsp; }&nbsp;&nbsp; <br><br>重写该函数,&nbsp; 就可以截获键盘消息.
<img src ="http://www.cppblog.com/icefairy/aggbug/80859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-04-23 16:20 <a href="http://www.cppblog.com/icefairy/archive/2009/04/23/80859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC 连接ACCESS  ado</title><link>http://www.cppblog.com/icefairy/archive/2009/04/22/80697.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Wed, 22 Apr 2009 03:02:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/04/22/80697.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/80697.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/04/22/80697.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/80697.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/80697.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"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CTestdbDlg::OnOK()&nbsp;<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img id=Codehighlighter1_25_1478_Open_Image onclick="this.style.display='none'; Codehighlighter1_25_1478_Open_Text.style.display='none'; Codehighlighter1_25_1478_Closed_Image.style.display='inline'; Codehighlighter1_25_1478_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_25_1478_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_25_1478_Closed_Text.style.display='none'; Codehighlighter1_25_1478_Open_Image.style.display='inline'; Codehighlighter1_25_1478_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_25_1478_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_25_1478_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;TODO:&nbsp;Add&nbsp;extra&nbsp;validation&nbsp;here<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">AfxOleInit();&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CoInitialize(NULL);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">初始化<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">打开数据库</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;_ConnectionPtr&nbsp;m_pConnection;<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img id=Codehighlighter1_155_457_Open_Image onclick="this.style.display='none'; Codehighlighter1_155_457_Open_Text.style.display='none'; Codehighlighter1_155_457_Closed_Image.style.display='inline'; Codehighlighter1_155_457_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_155_457_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_155_457_Closed_Text.style.display='none'; Codehighlighter1_155_457_Open_Image.style.display='inline'; Codehighlighter1_155_457_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_155_457_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_155_457_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pConnection.CreateInstance(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ADODB.Connection</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(m_pConnection&nbsp;!=&nbsp;NULL);</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_bstr_t&nbsp;strConnect</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source=test.mdb;Persist&nbsp;Security&nbsp;Info=False</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pConnection</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">ConnectionTimeout</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置超时时间为5秒</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pConnection</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Open(strConnect,</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">,adModeUnknown);<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(_com_error&nbsp;e)<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img id=Codehighlighter1_484_522_Open_Image onclick="this.style.display='none'; Codehighlighter1_484_522_Open_Text.style.display='none'; Codehighlighter1_484_522_Closed_Image.style.display='inline'; Codehighlighter1_484_522_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_484_522_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_484_522_Closed_Text.style.display='none'; Codehighlighter1_484_522_Open_Image.style.display='inline'; Codehighlighter1_484_522_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_484_522_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_484_522_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(e.ErrorMessage());<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;_RecordsetPtr&nbsp;m_pRecordset;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">一个指向Recordset对象的指针<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">查询&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">22</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;sql</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">select&nbsp;sno&nbsp;From&nbsp;[sn]&nbsp;&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img id=Codehighlighter1_630_1062_Open_Image onclick="this.style.display='none'; Codehighlighter1_630_1062_Open_Text.style.display='none'; Codehighlighter1_630_1062_Closed_Image.style.display='inline'; Codehighlighter1_630_1062_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_630_1062_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_630_1062_Closed_Text.style.display='none'; Codehighlighter1_630_1062_Open_Image.style.display='inline'; Codehighlighter1_630_1062_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_630_1062_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_630_1062_Open_Text><span style="COLOR: #000000">{&nbsp;<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pRecordset.CreateInstance(__uuidof(Recordset));<br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pRecordset</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Open((_variant_t)sql,_variant_t((IDispatch</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)m_pConnection,</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">),adOpenStatic,adLockOptimistic,adCmdText);<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">m_pRecordset</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetadoEOF())<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img id=Codehighlighter1_849_1057_Open_Image onclick="this.style.display='none'; Codehighlighter1_849_1057_Open_Text.style.display='none'; Codehighlighter1_849_1057_Closed_Image.style.display='inline'; Codehighlighter1_849_1057_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_849_1057_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_849_1057_Closed_Text.style.display='none'; Codehighlighter1_849_1057_Open_Image.style.display='inline'; Codehighlighter1_849_1057_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_849_1057_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_849_1057_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_variant_t&nbsp;var;<br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">m_pRecordset</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetCollect(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sno</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(var.vt&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;VT_NULL)<br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img id=Codehighlighter1_942_1022_Open_Image onclick="this.style.display='none'; Codehighlighter1_942_1022_Open_Text.style.display='none'; Codehighlighter1_942_1022_Closed_Image.style.display='inline'; Codehighlighter1_942_1022_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_942_1022_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_942_1022_Closed_Text.style.display='none'; Codehighlighter1_942_1022_Open_Image.style.display='inline'; Codehighlighter1_942_1022_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_942_1022_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_942_1022_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strValue&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(LPCSTR)_bstr_t(var);<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(strValue);<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pRecordset</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">MoveNext();<br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img id=Codehighlighter1_1086_1093_Open_Image onclick="this.style.display='none'; Codehighlighter1_1086_1093_Open_Text.style.display='none'; Codehighlighter1_1086_1093_Closed_Image.style.display='inline'; Codehighlighter1_1086_1093_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1086_1093_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1086_1093_Closed_Text.style.display='none'; Codehighlighter1_1086_1093_Open_Image.style.display='inline'; Codehighlighter1_1086_1093_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(_com_error&nbsp;e)</span><span id=Codehighlighter1_1086_1093_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_1086_1093_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000">捕捉异常</span><span style="COLOR: #808080"></span></span><br><span style="COLOR: #008080">40</span><img id=Codehighlighter1_1097_1222_Open_Image onclick="this.style.display='none'; Codehighlighter1_1097_1222_Open_Text.style.display='none'; Codehighlighter1_1097_1222_Closed_Image.style.display='inline'; Codehighlighter1_1097_1222_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1097_1222_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1097_1222_Closed_Text.style.display='none'; Codehighlighter1_1097_1222_Open_Image.style.display='inline'; Codehighlighter1_1097_1222_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1097_1222_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1097_1222_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(e.ErrorMessage());<br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(e.Source());<br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(e.Description());&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">更新</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">46</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_bstr_t&nbsp;&nbsp;&nbsp;&nbsp;sql2</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">update&nbsp;[sn]&nbsp;set&nbsp;name='sss'&nbsp;where&nbsp;sno=3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;_variant_t&nbsp;RecordsAffected;<br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;m_pConnection</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Execute(sql2,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">RecordsAffected,adCmdText);<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img id=Codehighlighter1_1397_1405_Open_Image onclick="this.style.display='none'; Codehighlighter1_1397_1405_Open_Text.style.display='none'; Codehighlighter1_1397_1405_Closed_Image.style.display='inline'; Codehighlighter1_1397_1405_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1397_1405_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1397_1405_Closed_Text.style.display='none'; Codehighlighter1_1397_1405_Open_Image.style.display='inline'; Codehighlighter1_1397_1405_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;m_pRecordset</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Close();</span><span id=Codehighlighter1_1397_1405_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_1397_1405_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000">关闭记录集</span><span style="COLOR: #808080"></span></span><br><span style="COLOR: #008080">50</span><img id=Codehighlighter1_1430_1437_Open_Image onclick="this.style.display='none'; Codehighlighter1_1430_1437_Open_Text.style.display='none'; Codehighlighter1_1430_1437_Closed_Image.style.display='inline'; Codehighlighter1_1430_1437_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1430_1437_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1430_1437_Closed_Text.style.display='none'; Codehighlighter1_1430_1437_Open_Image.style.display='inline'; Codehighlighter1_1430_1437_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_pConnection</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Close();</span><span id=Codehighlighter1_1430_1437_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_1430_1437_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000">关闭连接</span><span style="COLOR: #808080"></span></span><br><span style="COLOR: #008080">51</span><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;AfxOleTerm();</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">52</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CoUninitialize();<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
在连接数据库之前要添加#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","adoEOF")<br><br>路径根据本机设置修改&nbsp;&nbsp;<br>rename("EOF","adoEOF")&nbsp; //重新命名<br>
<img src ="http://www.cppblog.com/icefairy/aggbug/80697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-04-22 11:02 <a href="http://www.cppblog.com/icefairy/archive/2009/04/22/80697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在对话框程序下禁用回车和ESC键</title><link>http://www.cppblog.com/icefairy/archive/2009/04/20/80513.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Mon, 20 Apr 2009 02:48:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/04/20/80513.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/80513.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/04/20/80513.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/80513.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/80513.html</trackback:ping><description><![CDATA[<p>在对话框类中添加如下函数<br><br>BOOL CRegister::PreTranslateMessage(MSG *pMsg)<br>{<br>&nbsp;if(WM_KEYFIRST &lt;= pMsg-&gt;message &amp;&amp; pMsg-&gt;message &lt;= WM_KEYLAST) <br>&nbsp;{ <br>&nbsp;&nbsp;if(pMsg-&gt;wParam == VK_RETURN ||pMsg-&gt;wParam ==VK_ESCAPE)//按回车键不响应 <br>&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;return true; <br>&nbsp;&nbsp;} <br>&nbsp;} <br>&nbsp;return CDialog::PreTranslateMessage(pMsg); </p>
<p>}</p>
<img src ="http://www.cppblog.com/icefairy/aggbug/80513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-04-20 10:48 <a href="http://www.cppblog.com/icefairy/archive/2009/04/20/80513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>随便写点</title><link>http://www.cppblog.com/icefairy/archive/2009/03/25/77853.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Wed, 25 Mar 2009 09:52:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/03/25/77853.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/77853.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/03/25/77853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/77853.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/77853.html</trackback:ping><description><![CDATA[<font color=#0000cc>OO的精髓是继承、封装和多态<br>继承就是说：你的爱人会继承做你女朋友时的相当多的优点，因为这些优点对你都是public的，但同时她也会继承以前的更多的缺点，因为其中很多缺点对你是protected，继承后才让你能访问。&nbsp; <br><br>封装就是说：许多不想让你知道的东西她会封装起来，你只能通过她提供的有限的接口来访问到被接口函数做了手脚的东西。&nbsp; <br><br>多态就是说：在她心情不同时，你去访问以她为参数的一个函数得到的结果是不同的。比如对她说&#8220;我爱你&#8221;&nbsp;。</font> 
<img src ="http://www.cppblog.com/icefairy/aggbug/77853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-03-25 17:52 <a href="http://www.cppblog.com/icefairy/archive/2009/03/25/77853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>虚函数</title><link>http://www.cppblog.com/icefairy/archive/2009/03/21/77441.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Sat, 21 Mar 2009 14:24:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/03/21/77441.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/77441.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/03/21/77441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/77441.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/77441.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;虚函数有时候也被称为方法。它可以使有差异的实体对象公用一种方法实现不同的操作。
<p>&nbsp;&nbsp;&nbsp; 虚函数能克服类型域解决方案中的缺陷，它使程序员能够在基类声明一些能够在各个派生类里面重新定义的函数。编译器和装载程序能保证对象和应用于他们的函数之间的正确对应关系。</p>
<p>&nbsp;class Employee</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; string name;</p>
<p>&nbsp;public:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Employee(const&nbsp; string &amp;name);</p>
<p>&nbsp;&nbsp;&nbsp; virtual void print() const;</p>
<p>}</p>
<p>void Employee::print() const</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp; cout&lt;&lt;name&lt;endl;</p>
<p>}</p>
<p>&nbsp;</p>
<p>关键字virtual指明print的作用就像是一个界面，既可以服务本类print函数，又可以服务于派生类的print函数。对于派生类定义的print函数，编译器保证对于生成的每一个实体对象都能调用正确的print函数。</p>
<p>&nbsp;&nbsp;&nbsp; 在派生类中对于有关函数的参数类型必须于虚函数的的参数类型相同，但可以在返回值类型上不同。</p>
<p>&nbsp;&nbsp;&nbsp; 所谓的多态性就是从Employee中取得了正确的行为，而不依赖于实际使用的是哪一种Employee。一个带有虚函数的类型被称为是一个多态类型。在C＋＋要取得多态行为，被调用的函数必须是虚函数，而对象必须是通过指针或者引用操作。如果直接操作一个对象（而不是通过指针或者引用），它的确切类型已经被编译器所知，就不需要多态了。</p>
<p>&nbsp;&nbsp;&nbsp; 为了实现多态性，编译器必须在类的每个对象里存储某种类型信息，并且在需要虚函数的时候利用这些信息。在典型的实例中，所需要的空间是一个指针。只有那些包含了虚函数的类才需要这点空间，而不是任何对象，甚至不是任何派生类的对象。使用时，只需要为含有虚函数的类付出开销。</p>
<img src ="http://www.cppblog.com/icefairy/aggbug/77441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-03-21 22:24 <a href="http://www.cppblog.com/icefairy/archive/2009/03/21/77441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高手给讲一下，谢谢</title><link>http://www.cppblog.com/icefairy/archive/2009/03/20/77348.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Fri, 20 Mar 2009 13:40:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/03/20/77348.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/77348.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/03/20/77348.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/77348.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/77348.html</trackback:ping><description><![CDATA[<p>#include &lt;iostream&gt; <br>using namespace std; <br>class A <br>{<br>&nbsp;friend double count(A&amp;); <br>public: <br>&nbsp;A(double t, double r):total(t),rate(r){} <br>&nbsp;private: <br>&nbsp;double total; <br>&nbsp;double rate; <br>}; <br>double count(A&amp;a) <br>{ <br>&nbsp;a.total+=a.rate*a.total; <br>&nbsp;return a.total; <br>} <br>int main(void ) <br>{ <br>&nbsp;A x(100,0.5),y(50,0.1); </p>
<p>&nbsp;cout&lt;&lt;count(x)&lt;&lt;"&nbsp; "&lt;&lt;count(y)&lt;&lt;endl;<br>&nbsp;cout&lt;&lt;count(x) &lt;&lt;"\n"; <br>&nbsp;&nbsp;&nbsp; return 0; <br>} <br><br>这段代码是什么意思？？</p>
<img src ="http://www.cppblog.com/icefairy/aggbug/77348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-03-20 21:40 <a href="http://www.cppblog.com/icefairy/archive/2009/03/20/77348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>结构体和类的区别</title><link>http://www.cppblog.com/icefairy/archive/2009/03/19/77228.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Thu, 19 Mar 2009 12:59:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/03/19/77228.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/77228.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/03/19/77228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/77228.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/77228.html</trackback:ping><description><![CDATA[类成员默认访问权限为私有(private)，结构体成员默认访问权限为公共public<br><br>从class继承默认是私有继承，从struct继承默认是公有继承。<br><br>结构体类型不包括操作。<br>
<img src ="http://www.cppblog.com/icefairy/aggbug/77228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-03-19 20:59 <a href="http://www.cppblog.com/icefairy/archive/2009/03/19/77228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>const 的用法</title><link>http://www.cppblog.com/icefairy/archive/2009/03/19/77227.html</link><dc:creator>裁缝</dc:creator><author>裁缝</author><pubDate>Thu, 19 Mar 2009 12:40:00 GMT</pubDate><guid>http://www.cppblog.com/icefairy/archive/2009/03/19/77227.html</guid><wfw:comment>http://www.cppblog.com/icefairy/comments/77227.html</wfw:comment><comments>http://www.cppblog.com/icefairy/archive/2009/03/19/77227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/icefairy/comments/commentRss/77227.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/icefairy/services/trackbacks/77227.html</trackback:ping><description><![CDATA[（一）const修饰参数。const只能修饰输入参数。<br>&nbsp;&nbsp;&nbsp;如果输入参数是指针型的，用const修饰可以防止指针被意外修改。<br><br>（二）const修饰函数返回值。<br>&nbsp;&nbsp; 函数返回const指针，表示该指针不能被改动，只能把该指针赋给const修饰的同类型指针变量。<br><br>&nbsp;（三）const+成员函数。<br>任何不修改数据成员的函数都应该声明为const类型，如果const成员函数修改了数据成员或者调用了其他函数修改数据成员，编译器都将报错！<br><br>（四）const 修饰变量，表示该变量不能被修改。<br>&nbsp;&nbsp;&nbsp; 1、const char&nbsp; *p 表示&nbsp;指向的内容不能改变<br>&nbsp;&nbsp;&nbsp; 2、char * const p，就是将P声明为常指针，它的地址不能改变，是固定的，但是它的内容可以改变。<br>&nbsp;&nbsp;&nbsp; 3、这种const指针是前两种的结合,使得指向的内容和地址都不能发生变化.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const double pi = 3.14159;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const double *const pi_ptr = &amp;pi;<br>
<img src ="http://www.cppblog.com/icefairy/aggbug/77227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/icefairy/" target="_blank">裁缝</a> 2009-03-19 20:40 <a href="http://www.cppblog.com/icefairy/archive/2009/03/19/77227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>