﻿<?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/ght21/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 16:02:43 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 16:02:43 GMT</pubDate><ttl>60</ttl><item><title>在DC中檫除画线</title><link>http://www.cppblog.com/ght21/archive/2007/01/15/17629.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Mon, 15 Jan 2007 02:09:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/15/17629.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17629.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/15/17629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17629.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17629.html</trackback:ping><description><![CDATA[
		<p>如果想把以前画的线条檫除,则每次画线和檫除都运行以下的代码就OK了,关键是设置异或操作那一句,其他的画图也用这一句.就可以实现檫除了.</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">    CDC</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> pDC </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> GetDC();                                   </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">得到要画图的DC</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    CPen pen(PS_SOLID,</span>
				<span style="COLOR: #000000">4</span>
				<span style="COLOR: #000000">,RGB(</span>
				<span style="COLOR: #000000">128</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">));                    </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">创建画笔</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    CPen</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> pOldPen </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> pDC</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">SelectObject(</span>
				<span style="COLOR: #000000">&amp;</span>
				<span style="COLOR: #000000">pen);              </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">把笔选入DC</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    pDC</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">SetROP2(R2_XORPEN);                              </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">设置异或操作,这一句是关键的</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    pDC</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">MoveTo(</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">);                                     </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">移动<img src="http://www.cppblog.com/images/dot.gif" />画线</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    pDC</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">LineTo(</span>
				<span style="COLOR: #000000">100</span>
				<span style="COLOR: #000000">,  </span>
				<span style="COLOR: #000000">100</span>
				<span style="COLOR: #000000">);  <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    pDC</span>
				<span style="COLOR: #000000">-&gt;</span>
				<span style="COLOR: #000000">SelectObject(</span>
				<span style="COLOR: #000000">&amp;</span>
				<span style="COLOR: #000000">pOldPen);                          </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">恢复画笔</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    ReleaseDC(pDC);                                       </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">释放DC</span>
		</div>
<img src ="http://www.cppblog.com/ght21/aggbug/17629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-15 10:09 <a href="http://www.cppblog.com/ght21/archive/2007/01/15/17629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>窗体贴图片的方法</title><link>http://www.cppblog.com/ght21/archive/2007/01/15/17628.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Mon, 15 Jan 2007 02:09:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/15/17628.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17628.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/15/17628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17628.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17628.html</trackback:ping><description><![CDATA[在需要贴图的窗体上运行下面的代码：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">    CBitmap bitmap;    <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    BITMAP bm;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    bitmap.LoadBitmap(IDB_BITMAP1);                 </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">从资源中导入一幅图片，bmp格式.</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">    bitmap.GetBitmap(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">bm);                          </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">得到位图的信息,保存在bm结构中</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    CDC MemDC;                                      </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建一个内存dc,双缓存</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">    CDC </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pDC </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> GetDC();                             </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果在onPaint函数中有pDC传过来的话,就不用这语句.</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    MemDC.CreateCompatibleDC(pDC);                  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">从内存DC中创建兼容DC</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">    MemDC.SelectObject(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">bitmap);                    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">把位图导入到内存DC中</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">                        <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />    pDC</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">StretchBlt(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">MemDC,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,bm.bmWidth,bm.bmHeight,SRCCOPY);             </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">贴图,这个函数可以拉伸图片</span></div><img src ="http://www.cppblog.com/ght21/aggbug/17628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-15 10:09 <a href="http://www.cppblog.com/ght21/archive/2007/01/15/17628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ANSI 和 UNICODE 的函数对应表</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17562.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:48:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17562.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17562.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17562.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17562.html</trackback:ping><description><![CDATA[
		<p>
				<br />ANSI        UNICODE     通用<br />(char.h)    (wchar.h)        (tchar.h)</p>
		<p>char         wchar_t          TCHAR<br />char *      wchar_t *        PTCHAR (PTSTR,LPWSTR,PWSTR,WCHAR)</p>
		<p>printf       wprintf          _tprintf<br />scanf       wscanf          _tscanf</p>
		<p>atoi         _wtoi            _ttoi<br />atol         _wtol            _ttol<br />itoa         _itow            _itot<br />ltoa         _ltow            _ltot</p>
		<p>atof         _wtof            _tstof</p>
		<p>strlen       wcslen          _tcslen<br />strcat       wcscat          _tcscat<br />strcpy      wcscpy         _tcscpy<br />strcmp     wcscmp        _tcscmp</p>
<img src ="http://www.cppblog.com/ght21/aggbug/17562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:48 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的多线程方法</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17561.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:45:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17561.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17561.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17561.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17561.html</trackback:ping><description><![CDATA[
		<p>在需要产生多线程的地方，插入下面的函数</p>
		<p>AfxBeginThread(Thread,LPVOID lpVoid);</p>
		<p>其中AfxBeginThread的第一个参数是一个函数的名称，要是全局函数，而且要有如下的形式</p>
		<p>UINT Thread(LPVOID lparam)<br />{<br />    //...这里是线程执行的代码<br /> return 0;<br />}</p>
		<p>AfxBeginThread的第二个参数是一个无值类型的指针，就是Thread函数的参数，利用这个指针可以传递需要的数据，AfxBeginThread先把数据转化为无值指针型传递过去，Thread再把无值指针型转化为具体的类型。</p>
<img src ="http://www.cppblog.com/ght21/aggbug/17561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:45 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用dll的方法</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17560.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:44:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17560.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17560.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17560.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17560.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.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">typedef UINT (CALLBACK</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> LPFNDLLFUNC1)(DWORD,UINT);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><img src="http://www.cppblog.com/images/dot.gif" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />HINSTANCE hDLL;               </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> Handle to DLL</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">LPFNDLLFUNC1 lpfnDllFunc1;    </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> Function pointer</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">DWORD dwParam1;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />UINT  uParam2, uReturnVal;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />hDLL </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> LoadLibrary(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">MyDLL</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000"> (hDLL </span>
				<span style="COLOR: #000000">!=</span>
				<span style="COLOR: #000000"> NULL)<br /><img id="Codehighlighter1_244_565_Open_Image" onclick="this.style.display='none'; Codehighlighter1_244_565_Open_Text.style.display='none'; Codehighlighter1_244_565_Closed_Image.style.display='inline'; Codehighlighter1_244_565_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_244_565_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_244_565_Closed_Text.style.display='none'; Codehighlighter1_244_565_Open_Image.style.display='inline'; Codehighlighter1_244_565_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_244_565_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_244_565_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   lpfnDllFunc1 </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> (LPFNDLLFUNC1)GetProcAddress(hDLL,<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                                           </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">DLLFunc1</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000"> (</span>
						<span style="COLOR: #000000">!</span>
						<span style="COLOR: #000000">lpfnDllFunc1)<br /><img id="Codehighlighter1_380_466_Open_Image" onclick="this.style.display='none'; Codehighlighter1_380_466_Open_Text.style.display='none'; Codehighlighter1_380_466_Closed_Image.style.display='inline'; Codehighlighter1_380_466_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_380_466_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_380_466_Closed_Text.style.display='none'; Codehighlighter1_380_466_Open_Image.style.display='inline'; Codehighlighter1_380_466_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
						<span id="Codehighlighter1_380_466_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_380_466_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />      </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> handle the error</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">      FreeLibrary(hDLL);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />      </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> SOME_ERROR_CODE;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />   }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />   </span>
						<span style="COLOR: #0000ff">else</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_479_563_Open_Image" onclick="this.style.display='none'; Codehighlighter1_479_563_Open_Text.style.display='none'; Codehighlighter1_479_563_Closed_Image.style.display='inline'; Codehighlighter1_479_563_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_479_563_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_479_563_Closed_Text.style.display='none'; Codehighlighter1_479_563_Open_Image.style.display='inline'; Codehighlighter1_479_563_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
						<span id="Codehighlighter1_479_563_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_479_563_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />      </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> call the function</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">      uReturnVal </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> lpfnDllFunc1(dwParam1, uParam2);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />   }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img id="Codehighlighter1_568_646_Open_Image" onclick="this.style.display='none'; Codehighlighter1_568_646_Open_Text.style.display='none'; Codehighlighter1_568_646_Closed_Image.style.display='inline'; Codehighlighter1_568_646_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_568_646_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_568_646_Closed_Text.style.display='none'; Codehighlighter1_568_646_Open_Image.style.display='inline'; Codehighlighter1_568_646_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span id="Codehighlighter1_568_646_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_568_646_Open_Text">
						<span style="COLOR: #808080">//////////////////////////////////////////////////////////////////////////////</span>
				</span>
				<br />
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">#include </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.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include </span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">windows.h</span>
				<span style="COLOR: #000000">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />typedef </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000">(</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">lpAddFun)(</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000">, </span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000">); </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">宏定义函数指针类型</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> main(</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> argc, </span>
				<span style="COLOR: #0000ff">char</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">argv[])<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_770_1058_Open_Image" onclick="this.style.display='none'; Codehighlighter1_770_1058_Open_Text.style.display='none'; Codehighlighter1_770_1058_Closed_Image.style.display='inline'; Codehighlighter1_770_1058_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_770_1058_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_770_1058_Closed_Text.style.display='none'; Codehighlighter1_770_1058_Open_Image.style.display='inline'; Codehighlighter1_770_1058_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_770_1058_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_770_1058_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />HINSTANCE hDll; </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">DLL句柄 </span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />lpAddFun addFun; </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">函数指针</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />hDll </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> LoadLibrary(</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">..\\Debug\\dllTest.dll</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000"> (hDll </span>
						<span style="COLOR: #000000">!=</span>
						<span style="COLOR: #000000"> NULL)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_894_1044_Open_Image" onclick="this.style.display='none'; Codehighlighter1_894_1044_Open_Text.style.display='none'; Codehighlighter1_894_1044_Closed_Image.style.display='inline'; Codehighlighter1_894_1044_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_894_1044_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_894_1044_Closed_Text.style.display='none'; Codehighlighter1_894_1044_Open_Image.style.display='inline'; Codehighlighter1_894_1044_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span>
						<span id="Codehighlighter1_894_1044_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_894_1044_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />addFun </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> (lpAddFun)GetProcAddress(hDll, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">add</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (addFun </span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #000000"> NULL)<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_967_1021_Open_Image" onclick="this.style.display='none'; Codehighlighter1_967_1021_Open_Text.style.display='none'; Codehighlighter1_967_1021_Closed_Image.style.display='inline'; Codehighlighter1_967_1021_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_967_1021_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_967_1021_Closed_Text.style.display='none'; Codehighlighter1_967_1021_Open_Image.style.display='inline'; Codehighlighter1_967_1021_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span>
								<span id="Codehighlighter1_967_1021_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_967_1021_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span>
										<span style="COLOR: #0000ff">int</span>
										<span style="COLOR: #000000"> result </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> addFun(</span>
										<span style="COLOR: #000000">2</span>
										<span style="COLOR: #000000">, </span>
										<span style="COLOR: #000000">3</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />printf(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">%d</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">, result);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
										<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />FreeLibrary(hDll);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_1060_1132_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1060_1132_Open_Text.style.display='none'; Codehighlighter1_1060_1132_Closed_Image.style.display='inline'; Codehighlighter1_1060_1132_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_1060_1132_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1060_1132_Closed_Text.style.display='none'; Codehighlighter1_1060_1132_Open_Image.style.display='inline'; Codehighlighter1_1060_1132_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span id="Codehighlighter1_1060_1132_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_1060_1132_Open_Text">
						<span style="COLOR: #808080">////////////////////////////////////////////////////////////////////////</span>
				</span>
				<br />
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">#pragma comment(lib,</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">dllTest.lib</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">) <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">.lib文件中仅仅是关于其对应DLL文件中函数的重定位信息</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">extern</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">C</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> __declspec(dllimport) add(</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> x,</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> y); <br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> main(</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000"> argc, </span>
				<span style="COLOR: #0000ff">char</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000"> argv[])<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_1290_1351_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1290_1351_Open_Text.style.display='none'; Codehighlighter1_1290_1351_Closed_Image.style.display='inline'; Codehighlighter1_1290_1351_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1290_1351_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1290_1351_Closed_Text.style.display='none'; Codehighlighter1_1290_1351_Open_Image.style.display='inline'; Codehighlighter1_1290_1351_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_1290_1351_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_1290_1351_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">int</span>
						<span style="COLOR: #000000"> result </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> add(</span>
						<span style="COLOR: #000000">2</span>
						<span style="COLOR: #000000">,</span>
						<span style="COLOR: #000000">3</span>
						<span style="COLOR: #000000">); <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />printf(</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">%d</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">,result);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.cppblog.com/ght21/aggbug/17560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:44 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ADO访问数据库方法(文章写得较早,有些没有注意编码的问题.)</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17559.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:43:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17559.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17559.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17559.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17559.html</trackback:ping><description><![CDATA[
		<p>导入文件：<br />#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")<br />初始化：<br />if(!AfxOleInit())<br />{<br /> AfxMessageBox("初始化COM库失败!");<br />        return FALSE;<br />}<br />连接字段：<br />////////////////////////////////////////////////////////////////////////////////////////<br />连接SQL数据库用下面的字段：<br />"Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName;<br />User ID=userName;Password=userPassword;"</p>
		<p>连接ACCESS数据库用下面的字段：<br />"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databasePath;<br />User ID=userName;Password=userPassword;"</p>
		<p>DSN连接字段：<br />"Data Source=DSN;UID=;PWD=;"</p>
		<p>**********************************************<br />                                             *<br />用UDL文件可以更快的达到配置的效果^_^         *<br />                                             *<br />连接字段设置为:                              *<br />"File Name="+GetExePath()+"<a href="file://\\connect.udl">\\connect.udl</a>"    *<br />                                             *<br />**********************************************<br />CString GetExePath()<br />{<br /> // 得到模块全路径<br /> char exeFullPath[200];<br /> CString strPath;<br /> GetModuleFileName(NULL, exeFullPath, 200);<br /> strPath = CString(exeFullPath);</p>
		<p> // 转换为配置文件全路径<br /> strPath = strPath.Left(strPath.ReverseFind('\\'));<br /> return strPath;<br />}</p>
		<p>CString path=GetExePath();<br />path="File Name="+path+"<a href="file://\\connect.udl">\\connect.udl</a>";<br />LPCSTR ConStr=path;</p>
		<p>////////////////////////////////////////////////////////////////////////////////////////</p>
		<p>创建智能指针：</p>
		<p>_ConnectionPtr  Conn;<br />_RecordsetPtr   Rs;</p>
		<p>/**************************************************************************************/<br />   try<br />   {<br /> if (SUCCEEDED(Conn.CreateInstance("ADODB.Connection")))<br /> {<br />         LPCSTR ConStr="连接字段";    //如果使用UDL来连接的话：<br />                                             //"File Name="+GetExePath()+"<a href="file://\\Datasource.udl">\\Datasource.udl</a>"<br />                                             //CString Path="File Name="+GetExePath()+"<a href="file://\\Datasource.udl">\\Datasource.udl</a>"<br />                                             //LPCSTR ConStr=Path<br />  Conn-&gt;ConnectionTimeout=5;<br />  Conn-&gt;Open(ConStr,"","",adModeUnknown);</p>
		<p>              //或者<br />              //     Conn-&gt;ConnectionString=ConStr;<br />              //     Conn-&gt;Open("","","",adModeUnknown);<br /> }<br />   }<br />   catch(_com_error e)<br />   { <br />        // 显示错误信息<br /> CString errormessage;<br /> errormessage.Format("连接数据库失败!\r\n错误信息:%s", e.ErrorMessage());<br /> AfxMessageBox(errormessage);<br /> return;<br />   }<br />/**************************************************************************************/<br />   try<br />   {<br /> LPCSTR SqlStr="SQL字段";<br /> Rs.CreateInstance("ADODB.Recordset");<br /> Rs-&gt;Open(_bstr_t(SqlStr),<br />                 _variant_t((IDispatch *)Conn,true),<br />                 adOpenStatic,<br />                 adLockOptimistic,<br />                 adCmdText);<br />   }<br />   catch(_com_error e)<br />   { <br />        // 显示错误信息<br /> CString errormessage;<br /> errormessage.Format("打开记录集失败!\r\n错误信息:%s", e.ErrorMessage());<br /> AfxMessageBox(errormessage);<br /> return;<br />   }<br />/**************************************************************************************/</p>
<img src ="http://www.cppblog.com/ght21/aggbug/17559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:43 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>控制光驱进出的代码</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17558.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:42:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17558.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17558.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17558.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17558.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17558.html</trackback:ping><description><![CDATA[
		<p>在文件头定义<br />#pragma comment(lib,"Winmm.lib")<br />#include &lt;mmsystem.h&gt;</p>
		<p>控制光驱关闭<br />mciSendString(_T("set cdaudio door closed"),0,0,NULL); </p>
		<p>控制光驱打开<br />mciSendString(_T("set cdaudio door open"),0,0,NULL);</p>
<img src ="http://www.cppblog.com/ght21/aggbug/17558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:42 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为窗口添加鼠标进入和离开事件</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17557.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:41:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17557.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17557.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17557.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17557.html</trackback:ping><description><![CDATA[
		<p>添加鼠标进入和离开事件</p>
		<p>作者：梁海泉</p>
		<p>   因为鼠标的进入和离开不是一个标准的window事件，所以要手动添加代码，先建一个OnMouseMove事件，再手动添加OnMouseLeave和OnMouseHover事件，分别在OnMouseMove事件的下面。</p>
		<p>/*************************************************************************/</p>
		<p> afx_msg void OnMouseMove(UINT nFlags, CPoint point);<br /> afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);<br /> afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);</p>
		<p>/*************************************************************************/</p>
		<p>BEGIN_MESSAGE_MAP(CTButton, CButton)<br /> ON_WM_MOUSEMOVE()<br /> ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)<br /> ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)<br />END_MESSAGE_MAP()</p>
		<p>/*************************************************************************/</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">void</span>
				<span style="COLOR: #000000"> CTButton::OnMouseMove(UINT nFlags, CPoint point)<br /><img id="Codehighlighter1_54_257_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_257_Open_Text.style.display='none'; Codehighlighter1_54_257_Closed_Image.style.display='inline'; Codehighlighter1_54_257_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_54_257_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_257_Closed_Text.style.display='none'; Codehighlighter1_54_257_Open_Image.style.display='inline'; Codehighlighter1_54_257_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_54_257_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_54_257_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    TRACKMOUSEEVENT tme;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    tme.cbSize </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">sizeof</span>
						<span style="COLOR: #000000">(tme);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    tme.hwndTrack </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> m_hWnd;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    tme.dwFlags </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> TME_LEAVE </span>
						<span style="COLOR: #000000">|</span>
						<span style="COLOR: #000000"> TME_HOVER;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    tme.dwHoverTime </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">1</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    ::TrackMouseEvent(</span>
						<span style="COLOR: #000000">&amp;</span>
						<span style="COLOR: #000000">tme);            <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    CButton::OnMouseMove(nFlags, point);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />LRESULT CTButton::OnMouseLeave(WPARAM wParam, LPARAM lParam)<br /><img id="Codehighlighter1_320_358_Open_Image" onclick="this.style.display='none'; Codehighlighter1_320_358_Open_Text.style.display='none'; Codehighlighter1_320_358_Closed_Image.style.display='inline'; Codehighlighter1_320_358_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_320_358_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_320_358_Closed_Text.style.display='none'; Codehighlighter1_320_358_Open_Image.style.display='inline'; Codehighlighter1_320_358_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_320_358_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_320_358_Open_Text">
						<span style="COLOR: #000000">{    <br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    SetWindowText(</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">鼠标离开</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />LRESULT CTButton::OnMouseHover(WPARAM wParam, LPARAM lParam)<br /><img id="Codehighlighter1_421_458_Open_Image" onclick="this.style.display='none'; Codehighlighter1_421_458_Open_Text.style.display='none'; Codehighlighter1_421_458_Closed_Image.style.display='inline'; Codehighlighter1_421_458_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_421_458_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_421_458_Closed_Text.style.display='none'; Codehighlighter1_421_458_Open_Image.style.display='inline'; Codehighlighter1_421_458_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_421_458_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_421_458_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    SetWindowText(</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">鼠标进来</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">return</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">0</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.cppblog.com/ght21/aggbug/17557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:41 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>鼠标在客户区拖动窗体的方法</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17556.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:39:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17556.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17556.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17556.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17556.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17556.html</trackback:ping><description><![CDATA[移动窗体的函数，在窗体的WM_LBUTTONDOWN消息中，响应下面的函数<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> CmyDlg::OnLButtonDown(UINT nFlags, CPoint point)<br /><img id="Codehighlighter1_54_239_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_239_Open_Text.style.display='none'; Codehighlighter1_54_239_Closed_Image.style.display='inline'; Codehighlighter1_54_239_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_54_239_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_239_Closed_Text.style.display='none'; Codehighlighter1_54_239_Open_Image.style.display='inline'; Codehighlighter1_54_239_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_54_239_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_54_239_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    SendMessage(WM_NCLBUTTONDOWN,<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />                HTCAPTION,<br /><img id="Codehighlighter1_159_197_Open_Image" onclick="this.style.display='none'; Codehighlighter1_159_197_Open_Text.style.display='none'; Codehighlighter1_159_197_Closed_Image.style.display='inline'; Codehighlighter1_159_197_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_159_197_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_159_197_Closed_Text.style.display='none'; Codehighlighter1_159_197_Open_Image.style.display='inline'; Codehighlighter1_159_197_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                MAKELPARAM(point.x,point.y));</span><span id="Codehighlighter1_159_197_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_159_197_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">把消息发送到非客户区，使窗体认为是拖动了标题栏，所以窗体会跟着鼠标拖动</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    CDialog::OnLButtonDown(nFlags, point);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.cppblog.com/ght21/aggbug/17556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:39 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17556.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>窗口接收热键的方法</title><link>http://www.cppblog.com/ght21/archive/2007/01/12/17555.html</link><dc:creator>梁海泉</dc:creator><author>梁海泉</author><pubDate>Fri, 12 Jan 2007 07:38:00 GMT</pubDate><guid>http://www.cppblog.com/ght21/archive/2007/01/12/17555.html</guid><wfw:comment>http://www.cppblog.com/ght21/comments/17555.html</wfw:comment><comments>http://www.cppblog.com/ght21/archive/2007/01/12/17555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ght21/comments/commentRss/17555.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ght21/services/trackbacks/17555.html</trackback:ping><description><![CDATA[
		<p>/****************************************************************/</p>
		<p>接收热键消息函数</p>
		<p>在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间插入下面的宏</p>
		<p>ON_MESSAGE(WM_HOTKEY,&amp;CmyDlg::OnHotKey)</p>
		<p>其中OnHotKey是要接收热键的对话框的成员函数。原型如下：</p>
		<p>afx_msg HRESULT OnHotKey(WPARAM wp,LPARAM lp);</p>
		<p>其中WPARAM是注册热键的时候的HotKeyID</p>
		<p>/****************************************************************/</p>
		<p>注册热键函数</p>
		<p>RegisterHotKey(m_hWnd,HotKeyID,m,k);</p>
		<p>参数1：要接收热键消息的窗口<br />参数2：热键号码，自己定义的一个整数，区分一个窗口中的多个热键<br />参数3：系统键<br />参数4：虚拟键</p>
		<p>
				<br />/****************************************************************/</p>
		<p>从热键控件中得到热键</p>
		<p>#define KEY(m,fm) if (m &amp; HOTKEYF_ALT)     \<br /> fm |= MOD_ALT;                          \<br /> if (m &amp; HOTKEYF_CONTROL)                    \<br /> fm |= MOD_CONTROL;                         \<br /> if (m &amp; HOTKEYF_SHIFT)                     \<br /> fm |= MOD_SHIFT;                         \<br /> <br />CHotKeyCtrl m_HotKey;<br />m_HotKey.GetHotKey(k,m);<br />KEY(m,fm)<br />RegisterHotKey(m_hWnd,HotKeyID,m,k);</p>
<img src ="http://www.cppblog.com/ght21/aggbug/17555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ght21/" target="_blank">梁海泉</a> 2007-01-12 15:38 <a href="http://www.cppblog.com/ght21/archive/2007/01/12/17555.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>