﻿<?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++博客-more and more [better and better]</title><link>http://www.cppblog.com/469090981/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 10:49:13 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 10:49:13 GMT</pubDate><ttl>60</ttl><item><title>CString string char* char[] 等数据类型之间的转换</title><link>http://www.cppblog.com/469090981/archive/2010/03/03/108763.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Wed, 03 Mar 2010 02:48:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2010/03/03/108763.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/108763.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2010/03/03/108763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/108763.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/108763.html</trackback:ping><description><![CDATA[<div class=post_content>
<p>以下基于ASCII码，如果换做Unicode则应该做相应的变动，否则回出现过程错误。<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66"><br>string</strong>&nbsp;转&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>.format("%s",&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>.c_str());&nbsp; <br><br>char&nbsp;转&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>.format("%s",&nbsp;char*);&nbsp; <br><br>char&nbsp;转&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp;s(char&nbsp;*);&nbsp; <br><br><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp;转&nbsp;char&nbsp;*&nbsp; <br>char&nbsp;*p&nbsp;=&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>.c_str();&nbsp; <br><br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp;转&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong> CStringTostring(<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong> str)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong> s;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; s.append(str.GetBuffer(str.GetLength()));</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; str.ReleaseBuffer();<br><br>&nbsp;&nbsp;&nbsp;&nbsp; return s;<br><br>}<br><br>1，<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp;-&gt;&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>.format("%s",&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>.c_str());&nbsp; <br>用c_str()确实比data()要好.&nbsp; <br>2，char&nbsp;-&gt;&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp;s(char&nbsp;*);&nbsp; <br>你的只能初始化，在不是初始化的地方最好还是用assign().&nbsp; <br><br><br>《<a href="http://union.dangdang.com/transfer/transfer.aspx?from=P-224382&amp;backurl=http%3A%2F%2Fsearch.dangdang.com%2Fbook%2Fsearch_pub.php%3Fcategory%3D01%26key%3DC%2B%2B%B1%EA%D7%BC%BA%AF%CA%FD%BF%E2" target=_blank><u>C++标准函数库</u></a>》中说的&nbsp; <br>有三个函数可以将字符串的内容转换为字符数组和C—<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp; <br>1.data(),返回没有&#8221;{post.content}&#8220;的字符串数组&nbsp; <br>2,c_str()，返回有&#8221;{post.content}&#8220;的字符串数组&nbsp; <br>3，copy()&nbsp; <br><br>---------------------------------------------------------------&nbsp; <br><br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>与int、char*、char[100]之间的转换-&nbsp;-&nbsp; <br><br><br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>与int、char*、char[100]之间的转换-&nbsp;-&nbsp; <br><br><br><br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>互转int&nbsp; <br><br>将字符转换为整数，可以使用atoi、_atoi64或atol。&nbsp; <br>而将数字转换为<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>变量，可以使用<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>的Format函数。如&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp;s;&nbsp; <br>int&nbsp;i&nbsp;=&nbsp;64;&nbsp; <br>s.Format("%d",&nbsp;i)&nbsp; <br>Format函数的功能很强，值得你研究一下。&nbsp; <br><br>void&nbsp;CStrDlg::OnButton1()&nbsp; <br>{&nbsp; <br>//&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp; <br>ss="1212.12";&nbsp; <br>int&nbsp;temp=atoi(ss);&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp;aa;&nbsp; <br>aa.Format("%d",temp);&nbsp; <br>AfxMessageBox("var&nbsp;is&nbsp;"&nbsp;+&nbsp;aa);&nbsp; <br>}&nbsp; <br><br>sart.Format("%s",buf);&nbsp; <br><br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>互转char*&nbsp; <br><br>///char&nbsp;*&nbsp;TO&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">cstring</strong>&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp;strtest;&nbsp; <br>char&nbsp;*&nbsp;charpoint;&nbsp; <br>charpoint="give&nbsp;<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp;a&nbsp;value";&nbsp; <br>strtest=charpoint;&nbsp; <br><br><br>///<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">cstring</strong>&nbsp;TO&nbsp;char&nbsp;*&nbsp; <br>charpoint=strtest.GetBuffer(strtest.GetLength());&nbsp; <br><span style="COLOR: #ff0000">此处如果为Unicode编码，则应将char*改为wchar*，否则读取的只有strtest的首字母，切忌最后的strtest.ReleaseBuffer()。<br></span>标准C里没有<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>,char&nbsp;*==char&nbsp;[]==<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">string</strong>&nbsp; <br><br>可以用<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>.Format("%s",char&nbsp;*)这个方法来将char&nbsp;*转成<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>。要把<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>转成char&nbsp;*，用操作符（LPCSTR）<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>就可以了。&nbsp; <br><br><br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>转换&nbsp;char[100]&nbsp; <br><br>char&nbsp;a[100];&nbsp; <br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">CString</strong>&nbsp;str("aaaaaa");&nbsp; <br>strncpy(a,(LPCTSTR)str,sizeof(a)); </p>
</div>
<img src ="http://www.cppblog.com/469090981/aggbug/108763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2010-03-03 10:48 <a href="http://www.cppblog.com/469090981/archive/2010/03/03/108763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFCDLL</title><link>http://www.cppblog.com/469090981/archive/2009/09/01/95007.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Tue, 01 Sep 2009 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/09/01/95007.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/95007.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/09/01/95007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/95007.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/95007.html</trackback:ping><description><![CDATA[1.类和函数的申明必须加上AFX_EXT_CLASS宏<br>AFX_EXT_CLASS宏的msdn解释：<br>
<p>
<object id=alink_1 type=application/x-oleobject classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11>
</object><a href="javascript:alink_1.Click()"><u><font color=#800080>Extension DLLs</font></u></a> use the macro <strong>AFX_EXT_CLASS</strong> to export classes; the executables that link to the extension DLL use the macro to import classes. With the <strong>AFX_EXT_CLASS </strong>macro, the same header file(s) used to build the extension DLL can be used with the executables that link to the DLL.</p>
类示例：<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"><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;AFX_EXT_CLASS&nbsp;CMyClass&nbsp;:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;CDocument<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img id=Codehighlighter1_48_69_Open_Image onclick="this.style.display='none'; Codehighlighter1_48_69_Open_Text.style.display='none'; Codehighlighter1_48_69_Closed_Image.style.display='inline'; Codehighlighter1_48_69_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_48_69_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_69_Closed_Text.style.display='none'; Codehighlighter1_48_69_Open_Image.style.display='inline'; Codehighlighter1_48_69_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_48_69_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_48_69_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&lt;body&nbsp;of&nbsp;class&gt;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
函数示例：<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">extern</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;AFX_EXT_CLASS&nbsp;Min(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">导出函数</span></div>
<br>2.在类的头文件中定义你dll中的资源值<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"><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;IDR_MYMENU&nbsp;9002&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">菜单资源</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;ID_MYTEST&nbsp;9003&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">菜单下拉按钮资源</span></div>
&nbsp;<br>3.类cpp文件编写正确后编译源程序<br>编译结束后，在资源头文件中会有你在类头文件中定义的资源项，但是资源的值往往和你在类头文件中定义的值不相同，你必须手工改过来<br><br>4.使用MFCDLL<br>（1）.讲生成号的.dll和.lib文件拷贝到你工程文件夹下，并且将你的类头文件也拷贝到工程文件夹下，在你需要创建类对象的文件前包含头文件<br>（2）.把.lib文件添加到你的工程资源中<br>（3）.加载dll资源<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"><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">MFC扩展dll中资源的加载&nbsp;&nbsp;记得在编译值钱需要在工程中导入相应的lib文件，还有在工程文件夹中赋值dll中类的头文件</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">2</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;HINSTANCE&nbsp;hdll&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;LoadLibrary(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MFCEXTDLL.dll</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">加载dll文件</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(hdll&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;NULL)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">判断是否加载成功</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">4</span><span style="COLOR: #008000"><img id=Codehighlighter1_154_375_Open_Image onclick="this.style.display='none'; Codehighlighter1_154_375_Open_Text.style.display='none'; Codehighlighter1_154_375_Closed_Image.style.display='inline'; Codehighlighter1_154_375_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_154_375_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_154_375_Closed_Text.style.display='none'; Codehighlighter1_154_375_Open_Image.style.display='inline'; Codehighlighter1_154_375_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_154_375_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_154_375_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">5</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;HMENU&nbsp;hmen&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;LoadMenu(hdll,&nbsp;MAKEINTRESOURCE(IDR_MYMENU));&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">从一个可执行文件中加载菜单资源</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">6</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;::SetMenu(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetSafeHwnd(),&nbsp;hmen);&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">给窗口分配一个新的菜单</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">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;&nbsp;&nbsp;&nbsp;&nbsp;::DrawMenuBar(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">GetSafeHwnd());&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">重新绘画菜单</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">8</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;FreeLibrary(hdll);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">释放dll模块实例</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">9</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
（4）.添加你dll资源中的消息响应函数<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">afx_msg&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;OnTestTestDLL();</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">ON_COMMAND(ID_MYTEST,&nbsp;OnTestTestDLL)&nbsp;&nbsp;&nbsp;</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: #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: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CUSEMFCDLLDlg::OnTestTestDLL()<br><img id=Codehighlighter1_125_151_Open_Image onclick="this.style.display='none'; Codehighlighter1_125_151_Open_Text.style.display='none'; Codehighlighter1_125_151_Closed_Image.style.display='inline'; Codehighlighter1_125_151_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_125_151_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_125_151_Closed_Text.style.display='none'; Codehighlighter1_125_151_Open_Image.style.display='inline'; Codehighlighter1_125_151_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_125_151_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_125_151_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_127_149_Open_Image onclick="this.style.display='none'; Codehighlighter1_127_149_Open_Text.style.display='none'; Codehighlighter1_127_149_Closed_Image.style.display='inline'; Codehighlighter1_127_149_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_127_149_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_127_149_Closed_Text.style.display='none'; Codehighlighter1_127_149_Open_Image.style.display='inline'; Codehighlighter1_127_149_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span id=Codehighlighter1_127_149_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_127_149_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;Funcation&nbsp;body<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></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/469090981/aggbug/95007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-09-01 16:53 <a href="http://www.cppblog.com/469090981/archive/2009/09/01/95007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程编程-个人理解</title><link>http://www.cppblog.com/469090981/archive/2009/08/30/94654.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Sun, 30 Aug 2009 06:18:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/30/94654.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/94654.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/30/94654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/94654.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/94654.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 id=Code_Closed_Image_125813 onclick="this.style.display='none'; Code_Closed_Text_125813.style.display='none'; Code_Open_Image_125813.style.display='inline'; Code_Open_Text_125813.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_125813 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_125813.style.display='none'; Code_Closed_Image_125813.style.display='inline'; Code_Closed_Text_125813.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_125813 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">CreateThread</span><span id=Code_Open_Text_125813 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">HANDLE&nbsp;CreateThread(<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;LPSECURITY_ATTRIBUTES&nbsp;lpThreadAttributes,&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;pointer&nbsp;to&nbsp;security&nbsp;attributes</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;DWORD&nbsp;dwStackSize,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;initial&nbsp;thread&nbsp;stack&nbsp;size</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;LPTHREAD_START_ROUTINE&nbsp;lpStartAddress,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;pointer&nbsp;to&nbsp;thread&nbsp;function</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">5</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;LPVOID&nbsp;lpParameter,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;argument&nbsp;for&nbsp;new&nbsp;thread</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">6</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;DWORD&nbsp;dwCreationFlags,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;creation&nbsp;flags</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">7</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;LPDWORD&nbsp;lpThreadId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;pointer&nbsp;to&nbsp;receive&nbsp;thread&nbsp;ID</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">8</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">9</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></span></div>
参数信息：lpThreadAttributes 安全属性结构体指针<br>dwStackSize 分配给新线程的堆大小<br>lpStartAddress 只想新线程的入口函数 格式如下：<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 id=Code_Closed_Image_131512 onclick="this.style.display='none'; Code_Closed_Text_131512.style.display='none'; Code_Open_Image_131512.style.display='inline'; Code_Open_Text_131512.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_131512 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_131512.style.display='none'; Code_Closed_Image_131512.style.display='inline'; Code_Closed_Text_131512.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_131512 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">线程函数入口</span><span id=Code_Open_Text_131512 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">DWORD&nbsp;WINAPI&nbsp;FunName(<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;LPVOID&nbsp;lpParameter&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>)</span></span></div>
<span style="COLOR: #ff0000">补充注意：入口函数不一定必须是上述格式（上述格式是msdn中提及的标准格式）<br></span><span style="COLOR: #ff0000">可以自定义函数，但是创建线程时必须函数类型转换，示例如下：<br></span>
<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">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;fun(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n)<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img id=Codehighlighter1_17_55_Open_Image onclick="this.style.display='none'; Codehighlighter1_17_55_Open_Text.style.display='none'; Codehighlighter1_17_55_Closed_Image.style.display='inline'; Codehighlighter1_17_55_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_17_55_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_17_55_Closed_Text.style.display='none'; Codehighlighter1_17_55_Open_Image.style.display='inline'; Codehighlighter1_17_55_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_17_55_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_17_55_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sdf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>HANDLE&nbsp;hThread3;<br></span><span style="COLOR: #008080">8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;hThread3</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">CreateThread(NULL,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,(unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;(__stdcall&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">))fun,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,NULL);</span></div>
<br>lpParameter 线程函数的参数<br>dwCreationFlags 创建标志(0 or CREATE_SUSPENDED)<br>lpThreadId 新线程ID的接收变量<br>返回：成功返回句柄对象（HANDLE对象） 否则返回NULL GetLastError()返回错误信息<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: #000000">hThread1</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">CreateThread(NULL,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,ThreadFun1,NULL,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,NULL);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>DWORD&nbsp;WINAPI&nbsp;ThreadFun1(<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;LPVOID&nbsp;lpParameter&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>)<br><img id=Codehighlighter1_105_137_Open_Image onclick="this.style.display='none'; Codehighlighter1_105_137_Open_Text.style.display='none'; Codehighlighter1_105_137_Closed_Image.style.display='inline'; Codehighlighter1_105_137_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_105_137_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_105_137_Closed_Text.style.display='none'; Codehighlighter1_105_137_Open_Image.style.display='inline'; Codehighlighter1_105_137_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_105_137_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_105_137_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">df</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</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>
<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"><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">BOOL&nbsp;CloseHandle(<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;HANDLE&nbsp;hObject&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;handle&nbsp;to&nbsp;object&nbsp;to&nbsp;close</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
关闭HANDLE句柄<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 id=Code_Closed_Image_133851 onclick="this.style.display='none'; Code_Closed_Text_133851.style.display='none'; Code_Open_Image_133851.style.display='inline'; Code_Open_Text_133851.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_133851 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_133851.style.display='none'; Code_Closed_Image_133851.style.display='inline'; Code_Closed_Text_133851.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_133851 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">CreateMutex</span><span id=Code_Open_Text_133851 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">HANDLE&nbsp;CreateMutex(<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;LPSECURITY_ATTRIBUTES&nbsp;lpMutexAttributes,<br></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;pointer&nbsp;to&nbsp;security&nbsp;attributes</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;BOOL&nbsp;bInitialOwner,&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;flag&nbsp;for&nbsp;initial&nbsp;ownership</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">5</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;LPCTSTR&nbsp;lpName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;pointer&nbsp;to&nbsp;mutex-object&nbsp;name</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">6</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></span></div>
参数信息：lpMutexAttributes 安全属性结构体指针 NULL是为默认的安全描叙符<br>bInitialOwner 为真时调用线程创建互斥对象，调用线程拥有互斥对象 为假时调用线程不拥有互斥对象<br>lpName 互斥对象的名称<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 id=Code_Closed_Image_143436 onclick="this.style.display='none'; Code_Closed_Text_143436.style.display='none'; Code_Open_Image_143436.style.display='inline'; Code_Open_Text_143436.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_143436 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_143436.style.display='none'; Code_Closed_Image_143436.style.display='inline'; Code_Closed_Text_143436.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_143436 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">WaitForSingleObject</span><span id=Code_Open_Text_143436 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">DWORD&nbsp;WaitForSingleObject(<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;HANDLE&nbsp;hHandle,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;handle&nbsp;to&nbsp;object&nbsp;to&nbsp;wait&nbsp;for</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;DWORD&nbsp;dwMilliseconds&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;time-out&nbsp;interval&nbsp;in&nbsp;milliseconds</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></span></div>
参数信息：hHandle Mutex对象（临界区）<br>dwMiliseconds 时间间隔（毫秒），超过时间间隔函数就返回 为0时马上返回 为INFINITE时用不返回<br>返回：失败返回WAIT_FAILED 否则返回一个引发这个函数的事件<br><br><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 id=Code_Closed_Image_145203 onclick="this.style.display='none'; Code_Closed_Text_145203.style.display='none'; Code_Open_Image_145203.style.display='inline'; Code_Open_Text_145203.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_145203 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_145203.style.display='none'; Code_Closed_Image_145203.style.display='inline'; Code_Closed_Text_145203.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_145203 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">ReleaseMutex</span><span id=Code_Open_Text_145203 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">BOOL&nbsp;ReleaseMutex(<br></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;HANDLE&nbsp;hMutex&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;handle&nbsp;to&nbsp;mutex&nbsp;object</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></span></div>
返回：成功返回非零数 否则返回0<br><br><br><br>
<img src ="http://www.cppblog.com/469090981/aggbug/94654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-30 14:18 <a href="http://www.cppblog.com/469090981/archive/2009/08/30/94654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何将一个String类型写到一个文本文件中？</title><link>http://www.cppblog.com/469090981/archive/2009/08/07/92535.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Fri, 07 Aug 2009 06:29:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/07/92535.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/92535.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/07/92535.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/92535.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/92535.html</trackback:ping><description><![CDATA[自创源代码如下：&nbsp;
<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">string</span><span style="COLOR: #000000">&nbsp;pstr</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">pName</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pID;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>fwrite(pstr.c_str(),</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(pstr),</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,file);&nbsp;</span></div>
若pstr="12-34"<br>结果不是理想中那样，打开文本后看到的是：12-34 屯屯屯屯 请问哪位大哥有更好是写入方法，可以指教我就非常感谢了！ 
<img src ="http://www.cppblog.com/469090981/aggbug/92535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-07 14:29 <a href="http://www.cppblog.com/469090981/archive/2009/08/07/92535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求标准C++字符串string分割</title><link>http://www.cppblog.com/469090981/archive/2009/08/07/92534.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Fri, 07 Aug 2009 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/07/92534.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/92534.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/07/92534.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/92534.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/92534.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/469090981/archive/2009/08/07/92534.html'>阅读全文</a><img src ="http://www.cppblog.com/469090981/aggbug/92534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-07 14:24 <a href="http://www.cppblog.com/469090981/archive/2009/08/07/92534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>课程项目！</title><link>http://www.cppblog.com/469090981/archive/2009/08/03/92051.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Mon, 03 Aug 2009 09:10:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/03/92051.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/92051.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/03/92051.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/92051.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/92051.html</trackback:ping><description><![CDATA[C语言编程练习题目： A出版社、B出版社是图书出版发行领域的巨头，A出版社出版的书籍种类涉及科技、外文、社科、卫生、生活、体育等方面；B 出版社出版的书籍种类涉及科技、社科、卫生、生活、体育、教育等方面。 C 书店、D书店、E 书店是 3 家著名的图书销售商，C 书店以销售科技类书图书闻名，同时也销售外文、教育类书籍；D书店以销售外文书籍店闻名，同时兼营科技、社科、教育类书籍；E 书店为销售图书种类最完全而著名，书籍种类包括科技、外文、社科、卫生、生活、体育、教育等方面。 F、G是两个典型的图书购买者（图书用户），定期或不定期的去 E 书店买书；其中 F 是一个个人用户，对科技、体育、生活类图书非常感兴趣，对这 3 类图书是逢书必买；G是一个单位用户，它对所有类的图书都感兴趣。 实体 A、B、C、D、E、F、G工作过程参见附一。 各个实体的初始化描述参见附二 题目要求： 请在Window下的VC6.0环境下，使用Win32 Console Application方式并采用多线程编程方式来模拟实体 A、B、C、D、E 之间的工作过程。 具体要求： 1．出版社、书店、图书用户作为独立的单位，各自内部信息相互保密，一般不随意暴露： 2．出版社给书店提供以下接口： 注册接口： 供书店用户登陆注册自己的信息，便于发定购通知； 参数信息： 书店 ID、 书店经营图书的种类、 通知的 Callback 函数 等等 查询接口： 供书店用户定购前查询； 参数信息： 图书种类 查询种类（全部、新书、再版） 查询结果返回 等等 定购接口： 供书店来定购书籍； 参数信息： 书店 ID 图书名 购买数量 联络方式的 Callback(上次不足图书的再版通知) 等等 3．书店（特别是 E 书店）给图书购买者提供以下接口：查询接口： 供图书购买者购买前进行查询； 参数信息： 图书种类查询种类（全部、新书、再版） 查询结果返回 等等 购买接口： 供图书购买者进行购买； 参数信息： 购买者ID 图书名称 购买数量 联络方式的Callback(上次不足图书的到货通知) 等等 4．在主线程中，控制各个实体的初始化、上述模拟活动的开始和停止； 5．出版社、书店、图书购买的工作活动按照时间顺序输出到文件work.txt中； 6．为了验证程序执行的正确性，各个实体（A、B、C、D、E、F、G）都应记载数据， 出版社应记录： 出版（再版）书目、 库存量、销售量、销售明细（每次销售给那个书店多少册）、定购书目数量以及明细（每次向谁定购了什么书、多少本）、销售书目数量以及明细 图书购买者：记录购买书目数量以及明细。以上信息每隔30秒输出一次，以便于核对程序执行的正确性。 7．程序要考虑使用良好的程序结构和数据结构、程序讲求效率。 附一A、B、C、D、E的工作描述 一、关于出版社工作 1．1出版 出版类型： 出版图书类型：新书、再版（主要是由于销售好而再版）； 出版数量：新书出版的数量 A、B出版社：每隔10秒出版一种新图书，每次1000册，即 A出版图书的顺序为：科技（1000）-&gt;外文（1000）-&gt;社科（1000）-&gt;卫生（1000）-&gt;生活（1000）-&gt;体育（1000）-&gt;科技（1000）; B出版图书的顺序为：科技（1000）-&gt;社科（1000）-&gt;卫生（1000）-&gt;生活（1000）-&gt;体育（1000）-&gt;教育（1000）-&gt;科技（1000） 再版图书的数量以及再版 当出现缺货时进行再版，每个书再版的数量为 （1）再版500册（当缺货数量&lt;=500册时）； （2）大于缺货数量并为1000的整数倍（当缺货数量&gt;500册时）； 再版请求要进行管理，每次再版不花时间。 出版书目相关信息 书目信息包括：编号、书名、种类、出版社等。 1．2发行（销售） 具体工作包括： 发行通知： 出版新书，向所有订阅此分类的书店通知， 再版，只通知订购此种图书但因缺货没买到书的书店。接受书店定购：如有货，则发货 否则，存货部分进行销售（同步完成），剩余部分转再版处理（异步完成）； 并且定购接口中，要有书店的信息，以便于再版后的通知（对上次购买不足的书店）。 1．3提供书目查询服务提供向书店提供书目查询服务，查询分类查书目、库存等。 提供查询希望能够讲求效率。 二、关于书店工作 2．1定购工作 定购分类两类：一类是主动定购、另一类是被动定购； 被动定购：接到书店定购通知后去定购； 主动定购：当前书店销售库存为0，而发生的定购； 每次定购不限于一种图书。 定购前，应该进行相关书目信息的查询。 E书店接到新书通知后每次订购200册 如果书店定购的图书，出版社货不足，则库存有多少购买多少，不足部分等到图书再版后通知再购买。（例如要购买500本，而库存只有300本，则先购300本，剩下200本等到再版后再购买） 三、关于图书购买者 G是一个单位用户，对科技、外文、社科、卫生、生活、体育、教育类图书都感兴趣，不定期从E书店购买新书，每次购买的数量是一个随机数（小于500）； 这里的不定期可以认为G每隔几秒（小于8的随机数）到E书店查询一次，看看是否有新书，如果有新书则一定购买新书，否则随机购买一种原有的书，如果货物不足，则库存有多少购买多少，不足部分等到书店通知到货后再购买。（例如要购买50本，而库存只有30本，则先购30本，剩下20本等到书店到货后再购买） 附二 系统的初始化描述 A出版社、B出版社、 C书店、 D书店、 E书店、F图书购买者、G图书购买者初始的数据都为空。 活动开始的顺序为： 1. A、B出版社开始出书 2． 出版后，出版社通知注册的书店（C、D、E），来定购； 3． 书店定购后，开始图书销售； 4． 图书购买者（G）定期到书店买书； 练习要求：先模拟出版社A，书商E，图书购买者G的交易过程，其余待完善 
<img src ="http://www.cppblog.com/469090981/aggbug/92051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-03 17:10 <a href="http://www.cppblog.com/469090981/archive/2009/08/03/92051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的第一个小游戏！</title><link>http://www.cppblog.com/469090981/archive/2009/08/03/92041.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Mon, 03 Aug 2009 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/03/92041.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/92041.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/03/92041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/92041.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/92041.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 主要源代码：void&nbsp;CSpellGraphicDlg::OnUp()&nbsp;{&nbsp;//&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here&nbsp;if&nbsp;(p.currentPoint/3==0)&nbsp;{&nbsp;&...&nbsp;&nbsp;<a href='http://www.cppblog.com/469090981/archive/2009/08/03/92041.html'>阅读全文</a><img src ="http://www.cppblog.com/469090981/aggbug/92041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-03 15:37 <a href="http://www.cppblog.com/469090981/archive/2009/08/03/92041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>同向绕圈相遇问题！递归调用解决！</title><link>http://www.cppblog.com/469090981/archive/2009/08/03/92014.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Mon, 03 Aug 2009 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/03/92014.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/92014.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/03/92014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/92014.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/92014.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_41_292_Open_Image onclick="this.style.display='none'; Codehighlighter1_41_292_Open_Text.style.display='none'; Codehighlighter1_41_292_Closed_Image.style.display='inline'; Codehighlighter1_41_292_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_41_292_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_41_292_Closed_Text.style.display='none'; Codehighlighter1_41_292_Open_Image.style.display='inline'; Codehighlighter1_41_292_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;getNum(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;c,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;d,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;e)</span><span id=Codehighlighter1_41_292_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_41_292_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num</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>&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;startPointA</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a,startPiontB</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">b;<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>&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(startPointA</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">a&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;startPiontB</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">b&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;num</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_159_174_Open_Image onclick="this.style.display='none'; Codehighlighter1_159_174_Open_Text.style.display='none'; Codehighlighter1_159_174_Closed_Image.style.display='inline'; Codehighlighter1_159_174_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_159_174_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_159_174_Closed_Text.style.display='none'; Codehighlighter1_159_174_Open_Image.style.display='inline'; Codehighlighter1_159_174_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_159_174_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_159_174_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</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>&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;((b</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">d)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">e</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">(a</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">c)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">e)<br><img id=Codehighlighter1_201_220_Open_Image onclick="this.style.display='none'; Codehighlighter1_201_220_Open_Text.style.display='none'; Codehighlighter1_201_220_Closed_Image.style.display='inline'; Codehighlighter1_201_220_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_201_220_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_201_220_Closed_Text.style.display='none'; Codehighlighter1_201_220_Open_Image.style.display='inline'; Codehighlighter1_201_220_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_201_220_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_201_220_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;num</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/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_227_279_Open_Image onclick="this.style.display='none'; Codehighlighter1_227_279_Open_Text.style.display='none'; Codehighlighter1_227_279_Closed_Image.style.display='inline'; Codehighlighter1_227_279_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_227_279_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_227_279_Closed_Text.style.display='none'; Codehighlighter1_227_279_Open_Image.style.display='inline'; Codehighlighter1_227_279_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">else</span><span id=Codehighlighter1_227_279_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_227_279_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;num</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;getNum((a</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">c)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">e,(b</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">d)</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">e,c,d,e);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</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><br><img id=Codehighlighter1_305_818_Open_Image onclick="this.style.display='none'; Codehighlighter1_305_818_Open_Text.style.display='none'; Codehighlighter1_305_818_Closed_Image.style.display='inline'; Codehighlighter1_305_818_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_305_818_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_305_818_Closed_Text.style.display='none'; Codehighlighter1_305_818_Open_Image.style.display='inline'; Codehighlighter1_305_818_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()</span><span id=Codehighlighter1_305_818_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_305_818_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;startPointA,startPointB,longA,longB,totalLong;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">请依次输入青蛙A的起始点、青蛙B的起始点、青蛙A依次跳跃距离、青蛙B依次跳跃距离和总长度：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;%d&nbsp;%d&nbsp;%d&nbsp;%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">startPointA,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">startPointB,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">longA,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">longB,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">totalLong);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(startPointA</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">startPointB)<br><img id=Codehighlighter1_530_639_Open_Image onclick="this.style.display='none'; Codehighlighter1_530_639_Open_Text.style.display='none'; Codehighlighter1_530_639_Closed_Image.style.display='inline'; Codehighlighter1_530_639_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_530_639_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_530_639_Closed_Text.style.display='none'; Codehighlighter1_530_639_Open_Image.style.display='inline'; Codehighlighter1_530_639_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_530_639_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_530_639_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">你输入数据有误，请重新输入：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;%d&nbsp;%d&nbsp;%d&nbsp;%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">startPointA,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">startPointB,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">longA,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">longB,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">totalLong);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</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>&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">getNum(startPointA,startPointB,longA,longB,totalLong);<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>&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(longA</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">longB&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;num</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_739_769_Open_Image onclick="this.style.display='none'; Codehighlighter1_739_769_Open_Text.style.display='none'; Codehighlighter1_739_769_Closed_Image.style.display='inline'; Codehighlighter1_739_769_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_739_769_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_739_769_Closed_Text.style.display='none'; Codehighlighter1_739_769_Open_Image.style.display='inline'; Codehighlighter1_739_769_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_739_769_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_739_769_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Impossible\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_778_804_Open_Image onclick="this.style.display='none'; Codehighlighter1_778_804_Open_Text.style.display='none'; Codehighlighter1_778_804_Closed_Image.style.display='inline'; Codehighlighter1_778_804_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_778_804_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_778_804_Closed_Text.style.display='none'; Codehighlighter1_778_804_Open_Image.style.display='inline'; Codehighlighter1_778_804_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;</span><span id=Codehighlighter1_778_804_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_778_804_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,num);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;}</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>&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</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></span></div>
<img src ="http://www.cppblog.com/469090981/aggbug/92014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-03 11:31 <a href="http://www.cppblog.com/469090981/archive/2009/08/03/92014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符指针作为参数正确使用！</title><link>http://www.cppblog.com/469090981/archive/2009/08/03/92006.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Mon, 03 Aug 2009 02:16:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/08/03/92006.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/92006.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/08/03/92006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/92006.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/92006.html</trackback:ping><description><![CDATA[<p>void find1(char array[3],char search,char** pa){<br>&nbsp;int i;<br>&nbsp;for (i=0;*(array+i)!='\0';i++)<br>&nbsp;{<br>&nbsp;&nbsp;if (*(array+i)==search)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;*pa=array+i;<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else if (*(array+i)==0)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;pa=0;<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}<br><br>int main(){<br>&nbsp;char array[]="dfyhgfhfhrtsxfvgsdfgdfgcsdtwe";<br>&nbsp;char search='c';<br>&nbsp;char *pa;<br>&nbsp;pa=(char*)malloc(100);//必须给pa分配地址值</p>
<p>&nbsp;find1(array,search,&amp;pa);//必须使用指针地址作为实参才能修改指针所指内容</p>
<p>&nbsp;printf("%c\n",*pa);</p>
<p>&nbsp;return 0;<br>}</p>
<img src ="http://www.cppblog.com/469090981/aggbug/92006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-08-03 10:16 <a href="http://www.cppblog.com/469090981/archive/2009/08/03/92006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SetTimer疑惑！</title><link>http://www.cppblog.com/469090981/archive/2009/07/31/91777.html</link><dc:creator>人生在于攀登！</dc:creator><author>人生在于攀登！</author><pubDate>Fri, 31 Jul 2009 02:54:00 GMT</pubDate><guid>http://www.cppblog.com/469090981/archive/2009/07/31/91777.html</guid><wfw:comment>http://www.cppblog.com/469090981/comments/91777.html</wfw:comment><comments>http://www.cppblog.com/469090981/archive/2009/07/31/91777.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/469090981/comments/commentRss/91777.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/469090981/services/trackbacks/91777.html</trackback:ping><description><![CDATA[//回调函数<br>void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime){<br>&nbsp;&nbsp;CTime time=CTime::GetCurrentTime();<br>&nbsp;&nbsp;CString str=time.Format("%H:%M:%S");<br>&nbsp;&nbsp;m_Time.SetWindowText(str);<br>&nbsp;}<br><br>//SetTimer函数调用<br>CWnd::SetTimer(1,1000,TimerProc);<br><br>编译出错，错误信息如下：<br>C:\Documents and Settings\ttc\桌面\C_workplace\System_Time\System_TimeDlg.cpp(164) : error C2664: 'SetTimer' : cannot convert parameter 3 from 'void (struct HWND__ *,unsigned int,unsigned int,unsigned long)' to 'void (__stdcall *)(struct HWND__ *,un<br>signed int,unsigned int,unsigned long)'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; None of the functions with this name in scope match the target type<br><br>这是为什么？？？<br>期待高手解决！<br>
<img src ="http://www.cppblog.com/469090981/aggbug/91777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/469090981/" target="_blank">人生在于攀登！</a> 2009-07-31 10:54 <a href="http://www.cppblog.com/469090981/archive/2009/07/31/91777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>