﻿<?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++博客-hongluobo-文章分类-VS 2005</title><link>http://www.cppblog.com/hongluobo/category/9949.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 07 Jun 2013 05:02:35 GMT</lastBuildDate><pubDate>Fri, 07 Jun 2013 05:02:35 GMT</pubDate><ttl>60</ttl><item><title>socket</title><link>http://www.cppblog.com/hongluobo/articles/161697.html</link><dc:creator>hongluobo</dc:creator><author>hongluobo</author><pubDate>Wed, 07 Dec 2011 13:52:00 GMT</pubDate><guid>http://www.cppblog.com/hongluobo/articles/161697.html</guid><wfw:comment>http://www.cppblog.com/hongluobo/comments/161697.html</wfw:comment><comments>http://www.cppblog.com/hongluobo/articles/161697.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hongluobo/comments/commentRss/161697.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hongluobo/services/trackbacks/161697.html</trackback:ping><description><![CDATA[<p>1.1</p>
<p>#include &lt;Afxsock.h&gt;</p>
<p>if(!AfxSocketInit())<br />&nbsp;{<br />&nbsp;&nbsp;AfxMessageBox("加载套接字库失败!");<br />&nbsp;&nbsp;return false;</p>
<p>&nbsp;}</p>
<p><br />2.1<br />#include &lt;winsock2.h&gt;</p>
<p>WORD wVersionRequested;<br />&nbsp;WSADATA wsaData;<br />&nbsp;int err;<br />&nbsp;<br />&nbsp;wVersionRequested = MAKEWORD( 2, 2 );<br />&nbsp;<br />&nbsp;err = WSAStartup( wVersionRequested, &amp;wsaData );<br />&nbsp;if ( err != 0 )<br />&nbsp;{<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;<br />&nbsp;<br />&nbsp;if ( LOBYTE( wsaData.wVersion ) != 2 ||<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIBYTE( wsaData.wVersion ) != 2 )<br />&nbsp;{<br />&nbsp;&nbsp;WSACleanup( );<br />&nbsp;&nbsp;return false; <br />&nbsp;}</p>
<p>&nbsp;</p>
<p><br />DWORD dwIP;<br />((CIPAddressCtrl *)GetDlgItem(IDC_IPADDRESS))-&gt;GetAddress(dwIP);</p>
<p>SOCKADDR_IN addrSrv;</p>
<p>addrSrv.sin_addr.S_un.S_addr=htonl(dwIP);<br />addrTo.sin_addr.S_un.S_addr=inet_addr("192.168.1.12");</p>
<p>addrSrv.sin_family=AF_INET;</p>
<p>addrSrv.sin_port=htons(m_port);</p>
<p>inet_ntoa(addrFrom.sin_addr)&nbsp; 网络地址转换</p>
<p>int ConnectResult=connect(m_socket,(SOCKADDR *)&amp;addrSrv,sizeof(SOCKADDR));</p>
<p>m_socket=socket(AF_INET,SOCK_STREAM,0);&nbsp;&nbsp; //TCP<br />m_socket=socket(AF_INET,SOCK_DGRAM,0);&nbsp;&nbsp; //UDP</p>
<p>如何将DWORD转换为IP字符串格式<br />DWORD wordIP;<br />char* charIP; <br />in_addr interAddr;<br />interAddr.S_un.S_addr=wordIP;<br />charIP=inet_ntoa(interAddr);</p><img src ="http://www.cppblog.com/hongluobo/aggbug/161697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hongluobo/" target="_blank">hongluobo</a> 2011-12-07 21:52 <a href="http://www.cppblog.com/hongluobo/articles/161697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件的安装部署过程</title><link>http://www.cppblog.com/hongluobo/articles/77743.html</link><dc:creator>hongluobo</dc:creator><author>hongluobo</author><pubDate>Tue, 24 Mar 2009 09:37:00 GMT</pubDate><guid>http://www.cppblog.com/hongluobo/articles/77743.html</guid><wfw:comment>http://www.cppblog.com/hongluobo/comments/77743.html</wfw:comment><comments>http://www.cppblog.com/hongluobo/articles/77743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hongluobo/comments/commentRss/77743.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hongluobo/services/trackbacks/77743.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>1</span><span>、在</span><span>&nbsp; Microsoft&nbsp; Visual&nbsp; Studio&nbsp; .NET&nbsp; </span><span>的</span><span>&#8220;</span><span>文件</span><span>&#8221;</span><span>菜单上，单击</span><span>&#8220;</span><span>新建</span><span>&#8221;</span><span>，然后单击</span><span>&#8220;</span><span>项目</span><span>&#8221;</span><span>。</span>&nbsp;</p>
<p><span>2</span><span>、在</span><span>&#8220;</span><span>新建项目</span><span>&#8221;</span><span>对话框中，选择</span><span>&#8220;</span><span>其他项目类型</span><span>&#8221;</span><span>，再选择</span><span>&#8220;</span><span>安装和部署</span><span>&#8221;</span><span>，然后在模板中选择</span><span>&#8220;</span><span>安装项目</span><span>&#8221;</span><span>。</span>&nbsp;</p>
<p><span>3</span><span>、键入</span><span>&nbsp; TestSetup&nbsp; </span><span>作为该程序的名称，然后单击确定。</span></p>
<p><span>4</span><span>、添加安装需要的文件：</span></p>
<p><span>　　点击</span><span>&#8220;</span><span>文件系统</span><span>&#8221;</span><span>的</span><span>&#8220;</span><span>应用程序文件夹</span><span>&#8221;</span><span>，在右边框中点击鼠标右键，选择</span><span>&#8220;</span><span>添加</span><span>&#8221;</span><span>，选择</span><span>&#8220;</span><span>文件</span><span>&#8221;</span><span>，然后选择需要部署的文件。本例选择</span><span>test.exe</span><span>文件（如果该程序运行时还需要别的文件，则一起选择）。</span> </p>
<p><span>5</span><span>、在</span><span>&#8220;</span><span>开始</span><span>&#8221;</span><span>菜单上建快捷方式：</span></p>
<p><span>　　</span><span>A</span><span>、点击</span><span>&#8220;</span><span>文件系统</span><span>&#8221;</span><span>的</span><span>&#8220;</span><span>用户的</span><span>&#8220;</span><span>程序</span><span>&#8221;</span><span>菜单</span><span>&#8221;</span><span>，在右边框中点击鼠标右键，选择</span><span>&#8220;</span><span>添加</span><span>&#8221;</span><span>，选择</span><span>&#8220;</span><span>文件夹</span><span>&#8221;</span><span>，文件夹的名称为</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>。</span></p>
<p><span>　　</span><span>B</span><span>、点击</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>，在右边框中点击鼠标右键，选择</span><span>&#8220;</span><span>创建新的快捷方式</span><span>&#8221;</span><span>，查找范围选择</span><span>&#8220;</span><span>应用程序文件夹</span><span>&#8221;</span><span>，选择</span><span>test.exe</span><span>文件，然后确定，更名为</span><span>&#8220;</span><span>程序员秘书</span><span>&#8221;</span><span>。</span></p>
<p><span>6</span><span>、在</span><span>&#8220;</span><span>桌面</span><span>&#8221;</span><span>建快捷方式：</span></p>
<p><span>　　点击</span><span>&#8220;</span><span>用户桌面</span><span>&#8221;</span><span>，在右边框中点击鼠标右键，选择</span><span>&#8220;</span><span>创建新的快捷方式</span><span>&#8221;</span><span>，查找范围选择</span><span>&#8220;</span><span>应用程序文件夹</span><span>&#8221;</span><span>，选择</span><span>test.exe</span><span>文件，然后确定，更名为</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>。</span></p>
<p><span>7</span><span>、<span>安装后自动运行程序</span>：</span></p>
<p><span>　　</span><span>A</span><span>、使用下面的代码创建一个</span><span>&nbsp; auto.vbs(auto</span><span>名称可以随意</span><span>)&nbsp; </span><span>文件：</span></p>
<p><span>Set&nbsp; WshShell&nbsp; =&nbsp; CreateObject( "WScript.Shell ") </span></p>
<p><span>WshShell.Run&nbsp; " " " "&nbsp; &amp;&nbsp; Property( "CustomActionData ")&nbsp; &amp;&nbsp; " " " ",1,False</span></p>
<p><span>Set&nbsp; WshShell&nbsp; =&nbsp; Nothing</span></p>
<p><span>　　</span><span>B</span><span>、打开安装项目并转到</span><span>&#8220;</span><span>自定义操作编辑器</span><span>&#8221;</span><span>。</span></p>
<p><span>　　</span><span>C</span><span>、选择</span><span>&#8220;</span><span>提交</span><span>&#8221;</span><span>节点；右击并添加一个新的</span><span>&#8220;</span><span>自定义操作</span><span>&#8221;</span><span>。</span></p>
<p><span>　　</span><span>D</span><span>、浏览文件系统以添加您在步骤</span><span>&nbsp; A&nbsp; </span><span>中创建的</span><span>&nbsp; auto.vbs&nbsp; </span><span>文件。</span></p>
<p><span>　　</span><span>E</span><span>、</span><span>auto.vbs</span><span>属性框的</span><span>&#8220;CustomActionData&#8221;</span><span>属性</span><span>[TARGETDIR]test.exe&nbsp; </span></p>
<p><span>8</span><span>、选择</span><span>TestSetup</span><span>项目，在属性框中修改，</span><span>Author</span><span>为</span><span>&#8220;</span><span>鲁勤俭</span><span>&#8221;</span><span>，</span><span>Manufacturer</span><span>为</span><span>&#8220;</span><span>程序员秘书开发小组</span><span>&#8221;</span><span>，</span><span>ProductName</span><span>为</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>，</span><span>Title</span><span>为</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>。</span> </p>
<p><span>10</span><span>、给快捷方式添加图标：</span></p>
<p><span>　　</span><span>A</span><span>、点击</span><span>&#8220;</span><span>文件系统</span><span>&#8221;</span><span>－－</span><span>&#8220;</span><span>用户的程序菜单</span><span>&#8221;</span><span>－－</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>，在右边框中点击鼠标右键，选择</span><span>&#8220;</span><span>属性窗口</span><span>&#8221;</span><span>，点击</span><span>&#8220;Icon&#8221;</span><span>－－</span><span>&#8220;</span><span>浏览</span><span>&#8221;</span><span>，在图标对话</span> <span>框中，点击</span><span>&#8220;</span><span>浏览</span><span>&#8221;</span><span>，文件类型选择</span><span>&#8220;</span><span>可执行文件</span><span>(*.exe)&#8221;</span><span>，应用程序文件夹中选择</span><span>test.exe</span><span>文件（注：</span><span>test.exe</span><span>项目编译时要选择有图</span> <span>标才行，也可以直接在磁盘上选择一个图标文件），确定，如果有多个图标，选择一个图标，确定。</span></p>
<p><span>　　</span><span>B</span><span>、同理给</span><span>&#8220;</span><span>用户桌面</span><span>&#8221;</span><span>的</span><span>&#8220;</span><span>程序员</span><span>&#8221;</span><span>的快捷方式添加上图标。</span></p>
<p><span>11</span><span>、创建卸载链接：</span></p>
<p><span>　　</span><span>A</span><span>、在安装项目目录中，创建一个新的</span><span>&nbsp; Uninstall.bat&nbsp; </span><span>文件。</span></p>
<p><span>　　</span><span>B</span><span>、在安装项目中，复制</span><span>&#8220;ProductCode&#8221;</span><span>属性（一个类似</span><span>&nbsp; [12345678-1234-1234-1234-123412341234]&nbsp; </span><span>的值）。</span></p>
<p><span>　　</span><span>C</span><span>、编辑</span><span>&nbsp; Uninstall.bat</span><span>，以便让其中一行包含以下内容（其中，</span><span>ProductCode&nbsp; </span><span>是您在步骤</span><span>&nbsp; 2&nbsp; </span><span>中复制的值）：</span> </p>
<p><span>　　</span><span>Msiexec&nbsp; /x&nbsp; ProductCode </span></p>
<p><span>　　</span><span>D</span><span>、将</span><span>&nbsp; Uninstall.bat&nbsp; </span><span>添加到安装项目的应用程序文件夹。</span></p>
<p><span>　　</span><span>E</span><span>、右击</span><span>&nbsp; Uninstall.bat&nbsp; </span><span>并选择</span><span>&#8220;</span><span>创建快捷方式</span><span>&#8221;</span><span>以创建快捷方式。</span></p>
<p><span>　　</span><span>F</span><span>、将快捷方式放在安装项目中相应的</span><span>&#8220;</span><span>开始</span><span>&#8221;</span><span>菜单文件夹中。</span></p>
<p><span>　　</span><span>G</span><span>、将快捷方式重命名为类似于</span><span>&#8220;</span><span>卸载</span>&nbsp;<span>程序员秘书</span><span>&#8221;</span><span>，将属性</span><span>ShowCmd</span><span>设为</span><span>vsdscMinimized</span><span>。</span></p>
<p><span>12</span><span>、编译</span></p>
<img src ="http://www.cppblog.com/hongluobo/aggbug/77743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hongluobo/" target="_blank">hongluobo</a> 2009-03-24 17:37 <a href="http://www.cppblog.com/hongluobo/articles/77743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC++中把一个对话框最小化到托盘</title><link>http://www.cppblog.com/hongluobo/articles/77728.html</link><dc:creator>hongluobo</dc:creator><author>hongluobo</author><pubDate>Tue, 24 Mar 2009 07:29:00 GMT</pubDate><guid>http://www.cppblog.com/hongluobo/articles/77728.html</guid><wfw:comment>http://www.cppblog.com/hongluobo/comments/77728.html</wfw:comment><comments>http://www.cppblog.com/hongluobo/articles/77728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hongluobo/comments/commentRss/77728.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hongluobo/services/trackbacks/77728.html</trackback:ping><description><![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3f1c7e"><span style="color: #000000">[[</span><span style="color: #743ca6">NSTimer</span><span style="color: #000000"> </span>scheduledTimerWithTimeInterval<span style="color: #000000">:</span><span style="color: #2526d3">1.0f</span><span style="color: #000000"> </span>target<span style="color: #000000">: </span><span style="color: #c22a9f">self</span><span style="color: #000000"> </span>selector<span style="color: #000000">:</span><span style="color: #c22a9f">@selector</span><span style="color: #000000">(</span><span style="color: #2b595d">HlbTimerSlot</span><span style="color: #000000">:) </span>userInfo<span style="color: #000000">:</span><span style="color: #c22a9f">nil</span><span style="color: #000000"> </span>repeats<span style="color: #000000">:</span><span style="color: #c22a9f">YES</span><span style="color: #000000">] </span>retain<span style="color: #000000">];</span></p><img src ="http://www.cppblog.com/hongluobo/aggbug/77728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hongluobo/" target="_blank">hongluobo</a> 2009-03-24 15:29 <a href="http://www.cppblog.com/hongluobo/articles/77728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vs2005制作安装包</title><link>http://www.cppblog.com/hongluobo/articles/77625.html</link><dc:creator>hongluobo</dc:creator><author>hongluobo</author><pubDate>Mon, 23 Mar 2009 11:47:00 GMT</pubDate><guid>http://www.cppblog.com/hongluobo/articles/77625.html</guid><wfw:comment>http://www.cppblog.com/hongluobo/comments/77625.html</wfw:comment><comments>http://www.cppblog.com/hongluobo/articles/77625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/hongluobo/comments/commentRss/77625.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/hongluobo/services/trackbacks/77625.html</trackback:ping><description><![CDATA[1.&nbsp;在现有项目的解决方案中添加新的项目:&nbsp;右击"解决方案",选择"添加"--"新建项目",&nbsp;在"添加新项目"的选择窗口中,&nbsp;"项目类型"选"其他项目类型"--"安装和部署","模板"选"安装项目",给新项目指定名称,位置;<br>2.&nbsp;在新添加的安装项目上右击,&nbsp;选择"视图"--"文件系统",&nbsp;右击"目标计算机上的文件系统"作侧的"应用程序文件夹",&nbsp;选择"添加文件"或者"添加项目输出",将你要安装的文件添加到该位置;<br>3.&nbsp;初始的安装位置:&nbsp;在上面的"文件系统"界面,&nbsp;左击"应用程序文件夹",&nbsp;在"属性"栏中找到"DefaultLocation",&nbsp;默认的属性值是:&nbsp;[ProgramFilesFolder][Manufacturer]\[ProductName],&nbsp;这就是用户安装的默认位置,&nbsp;如果不是这样,&nbsp;修改成这样.&nbsp;<br>4.&nbsp;另外,&nbsp;在"解决方案管理器"中,&nbsp;点击你添加的安装项目,&nbsp;在"属性"编辑栏中,&nbsp;在[Manufacturer]中填入你公司的名字或者你自己希望的文字,&nbsp;在[ProductName]填入你为要被安装的项目命名的名字.<br>5.&nbsp;先在"解决方案管理器"中"生成"你的项目,&nbsp;然后"生成"你的安装项目<br>6.&nbsp;在"解决方案管理器"中,右击你的安装项目,&nbsp;选择"安装",&nbsp;便可在你的开发机上进行安装了,&nbsp;在你的安装项目的路径下的bin下有两个文件夹:&nbsp;debug&nbsp;和&nbsp;Release,&nbsp;<br>7.&nbsp;在解决方案管理器中,右击你的安装项目,&nbsp;选择"属性",&nbsp;如果你的项目属性里选择的是&nbsp;"配置"&nbsp;是&nbsp;"debug",&nbsp;则你生成的安装文件在&nbsp;debug&nbsp;里面,&nbsp;如果选择的"配置"是&nbsp;"Release",&nbsp;则生成的安装文件在&nbsp;Release&nbsp;里面.&nbsp;当然你也可以修改你的位置可文件名,&nbsp;还可以对你的安装文件进行其它的设置.<br><br>还是在解决方案管理器中,&nbsp;右击添加的"安装项目",&nbsp;选择"视图"--"注册表";
<p>&nbsp;</p>
<p>在"目标计算机上的注册表"下,默认有注册表的五个主键栏;<br>默认情况下,&nbsp;在&nbsp;[HKEY_CURRENT_USER]&nbsp;和&nbsp;[HKEY_CURRENT_MACHINE]&nbsp;下会有&nbsp;[Software]\[Manufacturer]&nbsp;分支,&nbsp;如果你的安装项目的属性中设置了&nbsp;[Manufacturer]值,&nbsp;安装后会用值去替代[Manufacturer],&nbsp;例如&nbsp;[Manufacturer]&nbsp;的值&nbsp;设置为&nbsp;"Power&nbsp;Word",&nbsp;则安装后会在&nbsp;[Software]下创建一个[Power&nbsp;Word]分支;<br>默认情况下&nbsp;[Manufacturer]&nbsp;的&nbsp;AlwaysCreate&nbsp;属性是&nbsp;false,&nbsp;即:如果你的&nbsp;[Manufacturer]&nbsp;下没有项目,则不创建&nbsp;[Manufacturer]&nbsp;,如果无论如何都要创建这个键,&nbsp;则可将&nbsp;它的&nbsp;AlwaysCreate&nbsp;设置为&nbsp;true;<br>依照上面的方法,&nbsp;在你想建注册表项的主键中逐级新建分支项和项目,&nbsp;在新建的注册表项目上右击后选属性,&nbsp;设置注册项的&nbsp;value&nbsp;值;<br>无论是建主键分支还是项目,&nbsp;都可以用&nbsp;[]&nbsp;的方法使用系统变量来动态指定需要添加的注册表内容.&nbsp;例如:<br>[Manufacturer]&nbsp;存放的是安装项目的公司值,<br>[ProductName]&nbsp;存放的是安装项目属性中的&nbsp;产品名称,<br>[TARGETDIR]&nbsp;存放的是安装时用户选定的安装路径,<br>[COMPANYNAME]&nbsp;存放的是安装时用户填入的公司名(如果没设用户信息安装界面则取操作系统中的公司名),<br>[USERNAME]&nbsp;存放的是安装时用户填入的用户名(如果没设用户信息安装界面则取操作系统中的用户名,<br>如此等等<br></p>
<br>如果想要在安装时出现注册码,&nbsp;要么自己做一个DLL或者EXE项目,&nbsp;加入到&nbsp;自定义操作中在安装时打开界面输入注册码,&nbsp;要么使用VS安装项目自带的界面(在视图--用户界面中添加"用户信息"安装界面,设置showserialnumber&nbsp;为&nbsp;true),&nbsp;不过那个注册码是用&nbsp;模7&nbsp;来验证的,&nbsp;只要是验证位数值之和能被7整除都能通过,&nbsp;就像以前安装盗板&nbsp;office&nbsp;97&nbsp;时输入&nbsp;"1111111"一样. 
<img src ="http://www.cppblog.com/hongluobo/aggbug/77625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/hongluobo/" target="_blank">hongluobo</a> 2009-03-23 19:47 <a href="http://www.cppblog.com/hongluobo/articles/77625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>