﻿<?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++博客-    Update 牌...@ Blog-随笔分类-BUG分析</title><link>http://www.cppblog.com/Lee7/category/5045.html</link><description>  当华美的叶片落尽，生命的脉络才历历可见。 －－ 聂鲁达    
</description><language>zh-cn</language><lastBuildDate>Sun, 19 Oct 2008 06:40:09 GMT</lastBuildDate><pubDate>Sun, 19 Oct 2008 06:40:09 GMT</pubDate><ttl>60</ttl><item><title>VS2005环境ATL工程报错：error C2065: “_Module”: 未声明的标识符</title><link>http://www.cppblog.com/Lee7/archive/2008/10/17/64273.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Fri, 17 Oct 2008 15:27:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/10/17/64273.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/64273.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/10/17/64273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/64273.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/64273.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: VC6.0中用ATL生成的全局变量_Module,  <br>  CComModule  _Module;  <br>  可以调用_Module.GetResourceInstance();  <br>    <br>  用VS2005生成时为_AtlModule,  <br>  COutLookAddinModule  _AtlModule  <br>  不能调用GetResourceInstance();怎么办？<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2008/10/17/64273.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/64273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-10-17 23:27 <a href="http://www.cppblog.com/Lee7/archive/2008/10/17/64273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>error LNK2001: unresolved external symbol _main解决办法</title><link>http://www.cppblog.com/Lee7/archive/2008/10/14/63993.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Tue, 14 Oct 2008 14:07:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/10/14/63993.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/63993.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/10/14/63993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/63993.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/63993.html</trackback:ping><description><![CDATA[<p><span id=txtObj_923512 style="FONT-SIZE: 10pt">解决外部符号错误:_main,_WinMain@16,__beginthreadex<span class=copyctrl style="FONT-SIZE: 0pt"> -!t'my`yK </span>&nbsp;<br>在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:<span class=copyctrl style="FONT-SIZE: 0pt"> m1+4#' </span>&nbsp;<br>libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main<span class=copyctrl style="FONT-SIZE: 0pt"> (gd){j </span>&nbsp;<br>LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16<span class=copyctrl style="FONT-SIZE: 0pt"> OuR5T&gt;&gt; </span>&nbsp;<br>msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16<span class=copyctrl style="FONT-SIZE: 0pt"> *_g+&amp;Us1 </span>&nbsp;<br>nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex<span class=copyctrl style="FONT-SIZE: 0pt"> }t,6 oT </span>&nbsp;<br>nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex <span class=copyctrl style="FONT-SIZE: 0pt">&lt;u%N(=9 </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">]wpN"w" </span>&nbsp;<br>1. Windows子系统设置错误, 提示:<span class=copyctrl style="FONT-SIZE: 0pt"> )WA5FzPLw </span>&nbsp;<br>libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main<span class=copyctrl style="FONT-SIZE: 0pt"> *+oJ(e </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">4f{'{1]\ </span>&nbsp;<br>Windows项目要使用Windows子系统, 而不是Console, 可以这样设置:<span class=copyctrl style="FONT-SIZE: 0pt"> *^'y#/Dg </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">z !DF-%3| </span>&nbsp;<br>[Project] --&gt; [Settings] --&gt; 选择"Link"属性页,<span class=copyctrl style="FONT-SIZE: 0pt">  Qo! </span>&nbsp;<br>在Project Options中将/subsystem:console改成/subsystem:windows&nbsp;&nbsp;<span class=copyctrl style="FONT-SIZE: 0pt"> T`H.k"Y{ </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">Xn?{t*{ </span>&nbsp;<br>2. Console子系统设置错误, 提示:<span class=copyctrl style="FONT-SIZE: 0pt"> vwK 7b0M </span>&nbsp;<br>LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16<span class=copyctrl style="FONT-SIZE: 0pt"> 4Y~E`L0, </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">8%P &gt;&lt;" </span>&nbsp;<br>控制台项目要使用Console子系统, 而不是Windows, 设置:<span class=copyctrl style="FONT-SIZE: 0pt"> *Cl5Y':|h </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">sipSn4_ </span>&nbsp;<br>[Project] --&gt; [Settings] --&gt; 选择"Link"属性页,<span class=copyctrl style="FONT-SIZE: 0pt"> WveN']q\ </span>&nbsp;<br>在Project Options中将/subsystem:windows改成/subsystem:console <span class=copyctrl style="FONT-SIZE: 0pt">BR4C@Z </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">1 vBkC&amp; </span>&nbsp;<br>3. 程序入口设置错误, 提示:<span class=copyctrl style="FONT-SIZE: 0pt"> dy2$&amp;$= </span>&nbsp;<br>msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16<span class=copyctrl style="FONT-SIZE: 0pt"> sP.&gt;uExt </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">G- (k~1q </span>&nbsp;<br>通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:<span class=copyctrl style="FONT-SIZE: 0pt"> r#~P5[aV </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">Os hl6 i </span>&nbsp;<br>[Project] --&gt; [Settings] --&gt; 选择"Link"属性页,<span class=copyctrl style="FONT-SIZE: 0pt"> "1zk_#B* </span>&nbsp;<br>在Category中选择Output,<span class=copyctrl style="FONT-SIZE: 0pt"> p HGRL </span>&nbsp;<br>再在Entry-point symbol中填入wWinMainCRTStartup, 即可<span class=copyctrl style="FONT-SIZE: 0pt"> &gt;IC}SZ </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">F)c[@\.dm </span>&nbsp;<br>4. 线程运行时库设置错误, 提示:<span class=copyctrl style="FONT-SIZE: 0pt"> X;t_- f </span>&nbsp;<br>nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex<span class=copyctrl style="FONT-SIZE: 0pt"> AmiBqZTp </span>&nbsp;<br>nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex<span class=copyctrl style="FONT-SIZE: 0pt"> sz 23_{c? </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">oz! {Fd- </span>&nbsp;<br>这是因为MFC要使用多线程时库, 需要更改设置:<span class=copyctrl style="FONT-SIZE: 0pt"> L a-Y,1x]( </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">uAk&gt;h^pbM </span>&nbsp;<br>[Project] --&gt; [Settings] --&gt; 选择"C/C++"属性页,<span class=copyctrl style="FONT-SIZE: 0pt"> '%ET|1#SO </span>&nbsp;<br>在Category中选择Code Generation,<span class=copyctrl style="FONT-SIZE: 0pt"> ;Y-M)k( </span>&nbsp;<br>再在Use run-time library中选择Debug Multithreaded或者multithreaded <span class=copyctrl style="FONT-SIZE: 0pt">0v~5&lt;Y'Z </span>&nbsp;<br>咸鱼游侠(75374355) 12:11:11<span class=copyctrl style="FONT-SIZE: 0pt"> &lt;mW.@e5_ </span>&nbsp;<br>其中,<span class=copyctrl style="FONT-SIZE: 0pt"> W_qa?Jv </span>&nbsp;<br>Single-Threaded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;单线程静态链接库(release版本)<span class=copyctrl style="FONT-SIZE: 0pt"> Kh4w Q  </span>&nbsp;<br>Multithreaded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多线程静态链接库(release版本)<span class=copyctrl style="FONT-SIZE: 0pt"> |F]g[En 4 </span>&nbsp;<br>multithreaded DLL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多线程动态链接库(release版本)<span class=copyctrl style="FONT-SIZE: 0pt"> s-'qYgA6p </span>&nbsp;<br>Debug Single-Threaded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;单线程静态链接库(debug版本)<span class=copyctrl style="FONT-SIZE: 0pt"> _ 7w_./y </span>&nbsp;<br>Debug Multithreaded&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多线程静态链接库(debug版本)<span class=copyctrl style="FONT-SIZE: 0pt"> &lt;[ ePw </span>&nbsp;<br>Debug Multithreaded DLL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多线程动态链接库(debug版本)<span class=copyctrl style="FONT-SIZE: 0pt"> H8V/O9|( </span>&nbsp;<br><span class=copyctrl style="FONT-SIZE: 0pt">9^x@/ </span>&nbsp;<br>单线程: 不需要多线程调用时, 多用在DOS环境下<span class=copyctrl style="FONT-SIZE: 0pt"> /PJ|d5 </span>&nbsp;<br>多线程: 可以并发运行<span class=copyctrl style="FONT-SIZE: 0pt"> clUdag,C </span>&nbsp;<br>静态库: 直接将库与程序Link, 可以脱离MFC库运行<span class=copyctrl style="FONT-SIZE: 0pt"> X]pEmHl </span>&nbsp;<br>动态库: 需要相应的DLL动态库, 程序才能运行<span class=copyctrl style="FONT-SIZE: 0pt"> \n{&amp;_:b+q </span>&nbsp;<br>release版本: 正式发布时使用<span class=copyctrl style="FONT-SIZE: 0pt"> 9J;ZZ/3 </span>&nbsp;<br>debug版本: 调试阶段使用&nbsp;&nbsp;<span class=copyctrl style="FONT-SIZE: 0pt"> k9PoFC#k </span>&nbsp;<br></span></p>
<img src ="http://www.cppblog.com/Lee7/aggbug/63993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-10-14 22:07 <a href="http://www.cppblog.com/Lee7/archive/2008/10/14/63993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>结构体对齐问题</title><link>http://www.cppblog.com/Lee7/archive/2008/05/25/51074.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Sun, 25 May 2008 13:50:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/05/25/51074.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/51074.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/05/25/51074.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/51074.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/51074.html</trackback:ping><description><![CDATA[<p>&#160;</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: #008000">//</span><span style="COLOR: #008000">定义的结构体如下：&nbsp;</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_38_735_Open_Image onclick="this.style.display='none'; Codehighlighter1_38_735_Open_Text.style.display='none'; Codehighlighter1_38_735_Closed_Image.style.display='inline'; Codehighlighter1_38_735_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_38_735_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_38_735_Closed_Text.style.display='none'; Codehighlighter1_38_735_Open_Image.style.display='inline'; Codehighlighter1_38_735_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000">typedef&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;arp_header</span><span id=Codehighlighter1_38_735_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_38_735_Open_Text><span style="COLOR: #000000">{&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-----------------------DLC&nbsp;Header----------------------------------------&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;DesMAC[</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">];&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">目标MAC&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;SrcMAC[</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">];&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">源MAC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;EtherType;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">EtherType默认为0x0806是ARP帧的类型值&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">-----------------------ARP&nbsp;Frame-----------------------------------------&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;HW_Type;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">硬件类型&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;Prot_Type;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">上层协议类型&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;HW_Addr_Len;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">MAC地址长度&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;Prot_Addr_Len;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">IP地址类型&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;Opcode;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">操作码&nbsp;&nbsp;0x01表示ARP请求包&nbsp;0x02表示RARP应答包&nbsp;</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>unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;Send_MAC_Addr[</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">];&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">发送方MAC&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;&nbsp;Send_IP_Addr;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">发送方IP&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;Targ_MAC_Addr[</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">];</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">接收方MAC&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;&nbsp;arg_IP_Addr;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">接受方IP&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;&nbsp;padding[</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">];&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">填充数据&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">ARPHEADER,</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">PARPHEADER;&nbsp;<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>填充：&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ARPHEADER;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">--------------------------------填充ARP头--------------------------------&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DesMAC[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0Xff</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DesMAC[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0Xff</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DesMAC[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0Xff</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DesMAC[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0Xff</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DesMAC[</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0Xff</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DesMAC[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0Xff</span><span style="COLOR: #000000">;&nbsp;<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>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SrcMAC[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SrcMAC[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X08</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SrcMAC[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X02</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SrcMAC[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0XDB</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SrcMAC[</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X3B</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">SrcMAC[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X95</span><span style="COLOR: #000000">;&nbsp;<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>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">EtherType&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X0608</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;m_ARPHdr-&gt;&nbsp;</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>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">HW_Type&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0X0100</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">硬件类型&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Prot_Type&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X0008</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">上层协议类型&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">HW_Addr_Len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X06</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">MAC地址长度&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Prot_Addr_Len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0X04</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">IP地址类型&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Opcode&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X0100</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">操作码&nbsp;&nbsp;0x01表示ARP请求包&nbsp;0x02表示RARP应答包&nbsp;<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">&nbsp;m_ARPHdr-&gt;Send_MAC_Addr[6];&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">发送方MAC&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_MAC_Addr[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_MAC_Addr[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X08</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_MAC_Addr[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X02</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_MAC_Addr[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0XDB</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_MAC_Addr[</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X3B</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_MAC_Addr[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X95</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Send_IP_Addr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;&nbsp;inet_addr(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">192.168.11.162</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">发送方IP&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;m_ARPHdr-&gt;Targ_MAC_Addr[6];</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">接收方MAC&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Targ_MAC_Addr[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Targ_MAC_Addr[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Targ_MAC_Addr[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Targ_MAC_Addr[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Targ_MAC_Addr[</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Targ_MAC_Addr[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0X00</span><span style="COLOR: #000000">;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">arg_IP_Addr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;inet_addr(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">192.168.11.154</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">接受方IP&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">m_ARPHdr-&gt;padding[18]&nbsp;;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">填充数据&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">memset(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">(m_ARPHdr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">padding[</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">18</span><span style="COLOR: #000000">);&nbsp;<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">填充后m_ARPHdr&nbsp;值如下：&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">FF&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;00&nbsp;08&nbsp;02&nbsp;DB&nbsp;3B&nbsp;95&nbsp;08&nbsp;06&nbsp;00&nbsp;01&nbsp;08&nbsp;00&nbsp;06&nbsp;04&nbsp;00&nbsp;01&nbsp;00&nbsp;08&nbsp;02&nbsp;DB&nbsp;3B&nbsp;95&nbsp;C0&nbsp;A8&nbsp;0B&nbsp;A2&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;C0&nbsp;A8&nbsp;0B&nbsp;02&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">转换：&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">u_char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;packet&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(u_char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)m_ARPHdr;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">转换后packet等于&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">FF&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;00&nbsp;08&nbsp;02&nbsp;DB&nbsp;3B&nbsp;95&nbsp;08&nbsp;06&nbsp;00&nbsp;01&nbsp;08&nbsp;00&nbsp;06&nbsp;04&nbsp;00&nbsp;01&nbsp;00&nbsp;08&nbsp;02&nbsp;DB&nbsp;3B&nbsp;95&nbsp;C0&nbsp;A8&nbsp;0B&nbsp;A2&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;CD&nbsp;CD&nbsp;C0&nbsp;A8&nbsp;0B&nbsp;02&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;&nbsp;<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">而且还有一个问题：&nbsp;</span><span style="COLOR: #008000"><br><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&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(ARPHEADER);&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">等于64；而不是60&nbsp;</span></div>
<p>&nbsp;为什么C0&nbsp;A8&nbsp;0B&nbsp;02前怎么不是CD CD</p>
<img src ="http://www.cppblog.com/Lee7/aggbug/51074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-05-25 21:50 <a href="http://www.cppblog.com/Lee7/archive/2008/05/25/51074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>strcpy()赋值和直接赋值的区别</title><link>http://www.cppblog.com/Lee7/archive/2008/01/30/42211.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Wed, 30 Jan 2008 05:35:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/30/42211.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/42211.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/30/42211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/42211.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/42211.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">在路上&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">01</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;stUserListNode<br><img id=Codehighlighter1_35_97_Open_Image onclick="this.style.display='none'; Codehighlighter1_35_97_Open_Text.style.display='none'; Codehighlighter1_35_97_Closed_Image.style.display='inline'; Codehighlighter1_35_97_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_35_97_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_97_Closed_Text.style.display='none'; Codehighlighter1_35_97_Open_Image.style.display='inline'; Codehighlighter1_35_97_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_35_97_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_35_97_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;userName[</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ip;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;port;<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>在路上&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">59</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>如何把一个CString赋值给userName<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>海阔天高&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">33</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>strcpy<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">43</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>stUserListNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">NodeMsg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;stUserListNode;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>strcpy(NodeMsg.userName,&nbsp;strName);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">43</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">46</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>在路上&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">43</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">58</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>error&nbsp;C2228:&nbsp;left&nbsp;of&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">.userName</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;must&nbsp;have&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">union&nbsp;type<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>鱼绕落水花&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">45</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">26</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>lstrcpy(对象.userName,CString变量.GetBuffer(CString变量.Getlength());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>海阔天高&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">45</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">27</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>strcpy(NodeMsg.userName,&nbsp;strName.GetBuffer());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>酱菜Pickle&nbsp;</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">59</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">21</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>NodeMsg是指针&nbsp;请用</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">&nbsp;，&nbsp;strName.getbuffer是正解<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">52</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>strcpy(&nbsp;NodeMsg</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">userName,&nbsp;strName.GetBuffer(strName.GetLength()))<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>OK了<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>NodeMsg</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">userName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strName.GetBuffer(strName.GetLength());<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>一开始我用这个不行<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">39</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>酱菜Pickle&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">58</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">46</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>GetBuffer是没有参数的函数<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>酱菜Pickle&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">59</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>他只是获取CString里面数据区的char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;首地址<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>酱菜Pickle&nbsp;</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">00</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">44</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>所以你&nbsp;不知直接用NodeMsg</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">userName拷贝地址，必须申请另外的空间存放，不然你的strName一析构&nbsp;你的NodeMsg</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">userName就变成野指针了<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>酱菜Pickle&nbsp;</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">00</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>所以你&nbsp;不能直接用NodeMsg</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">userName拷贝地址，必须申请另外的空间存放，不然你的strName一析构&nbsp;你的NodeMsg</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">userName就变成野指针了&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>在路上&nbsp;</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">49</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/Lee7/aggbug/42211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-30 13:35 <a href="http://www.cppblog.com/Lee7/archive/2008/01/30/42211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sizeof求长度的错误用法。</title><link>http://www.cppblog.com/Lee7/archive/2008/01/17/41342.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Thu, 17 Jan 2008 08:08:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/17/41342.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/41342.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/17/41342.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/41342.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/41342.html</trackback:ping><description><![CDATA[<p>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 15:57:02<br>CString strMsg = "ok1ok2ok3ok4";<br>&nbsp;&nbsp;char* Buffer = strMsg.GetBuffer(strMsg.GetLength());<br>&nbsp;&nbsp;int n = sizeof(Buffer);<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 15:57:31<br>n怎么等于4<br>寻路者(158989725) 15:57:51<br>&nbsp;&nbsp;int n = sizeof(Buffer); <br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 15:57:55<br>可以这样求吗？<br>寻路者(158989725) 15:58:13<br>Buffer是个指针.在32位机器上就是4个字节<br>Pinck(258360502) 15:58:17<br>指针.<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 15:58:14<br>这样啊！</p>
<p>Pinck(258360502) 15:58:25<br>用strlen<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 15:58:16<br>谢谢 <br>沧海一粟(17023666) 16:01:49<br>就是这样的<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 16:03:37<br>如果是数组就可以对吧<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 16:03:54<br>char buffer[1024] = {"ok1ok2ok3ok4"};<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 16:04:06<br>sizeof(buffer)<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 16:04:15<br>这样可以得到实际长度吧<br>Pinck(258360502) 16:04:49<br>不能.<br>Pinck(258360502) 16:04:59<br>长度为1024<br>在路上&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#115;&#97;&#98;&#99;&#64;&#113;&#113;&#46;&#99;&#111;&#109;">isabc@qq.com</a>&gt; 16:05:05<br>这样啊！！<br>沧海一粟(17023666) 16:06:23<br>如果这样就行<br>sizeof和strlen有区别<br>如果这样可以的<br>char buffer[]={"ok1ok2ok3ok4"};<br>sizeof(buffer);<br>沧海一粟(17023666) 16:07:00<br>在网上有好帖子讲这个很详细的。<br>可以搜索看下</p>
先把错误过程贴出来。有时间再分析下！
<img src ="http://www.cppblog.com/Lee7/aggbug/41342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-17 16:08 <a href="http://www.cppblog.com/Lee7/archive/2008/01/17/41342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何处理这个字符串str=“11,陆亚讯,19200,FFFF,1,0,0,0,0,0,4,3”</title><link>http://www.cppblog.com/Lee7/archive/2007/09/07/31767.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Fri, 07 Sep 2007 09:11:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2007/09/07/31767.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/31767.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2007/09/07/31767.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/31767.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/31767.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如何处理这个字符串str=“11,陆亚讯,19200,FFFF,1,0,0,0,0,0,4,3”，根据逗号，取出每个逗号间的信息！<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2007/09/07/31767.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/31767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2007-09-07 17:11 <a href="http://www.cppblog.com/Lee7/archive/2007/09/07/31767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Unhandled exception in EastR.exe (MFC42D.DLL) :0xC0000005;Access Violation</title><link>http://www.cppblog.com/Lee7/archive/2007/08/29/31168.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Wed, 29 Aug 2007 09:09:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2007/08/29/31168.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/31168.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2007/08/29/31168.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/31168.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/31168.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、编译没有错误。<br>--------------------Configuration: EastR - Win32 Debug--------------------<br><br>EastR.exe - 0 error(s), 0 warning(s)<br><br>2、运行到某一个函数报错<br><br>3、调试到int m_ClockNo = atoi(NewNo->GetItemText(0,0).GetBuffer(NewNo->GetItemText(0,0).GetLength()));<br>报Unhandled exception in EastR.exe (MFC42D.DLL) :0xC0000005;Access Violation错误<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2007/08/29/31168.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/31168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2007-08-29 17:09 <a href="http://www.cppblog.com/Lee7/archive/2007/08/29/31168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>