<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_surfer</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/12533/rss</id><updated>2012-03-01T05:13:54Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/12533/rss"/><entry><id>http://www.cnblogs.com/liuweijian/archive/2012/01/16/2323364.html</id><title type="text">金山开源安全卫士全套代码编译指南</title><summary type="text">要从金山开源安全卫士的代码里学习，首先当然是最好能把全套代码编译出 来进行调试。在开发湘勇网络医生的过程中，我一直关注金山开源安全卫士代码的更新动态，第一时间把代码下载下来并进行编译和调试。现将金山开源安全卫士全 套代码的编译指南整理如下，方便各位关注金山开源安全卫士的朋友一起学习和交流。根据编译指南编译还有问题的，可在后面跟帖，我会测试和解决后整理进来。 一、编译准备工作 1、编译器 建议使用 Visual C++ 2005 或者 Visual C++ 2005 SP1 要想编译全套代码，请安装Visual C++ 2005或者Visual C++ 2005 SP1，其它版本的编译器因...</summary><published>2012-01-16T02:52:00Z</published><updated>2012-01-16T02:52:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2012/01/16/2323364.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2012/01/16/2323364.html"/><content type="html">&lt;table id="pid2098" summary="pid2098" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="postcontent"&gt;&lt;div class="defaultpost"&gt;&lt;div class="postmessage firstpost"&gt;&lt;div class="t_msgfontfix"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="postmessage_2098" class="t_msgfont"&gt;&lt;span style="font-size: 12px;"&gt;要从&lt;span class="t_tag"&gt;金山开源&lt;/span&gt;安全卫士的&lt;span class="t_tag"&gt;代码&lt;/span&gt;里学习，首先当然是最好能把全套代码&lt;span class="t_tag"&gt;编译&lt;/span&gt;出 来进行调试。在开发湘勇网络医生的过程中，我一直关注金山开源安全卫士代码的更新动态，第一时间把代码下载下来并进行编译和调试。现将金山开源安全卫士全 套代码的编译指南整理如下，方便各位关注金山开源安全卫士的朋友一起学习和交流。根据编译指南编译还有问题的，可在后面跟帖，我会测试和解决后整理进来。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 一、编译准备工作&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 1、编译器 建议使用 Visual C++ 2005 或者 Visual C++ 2005 SP1&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 要想编译全套代码，请安装Visual C++ 2005或者Visual C++ 2005 SP1，其它版本的编译器因为金山开源安全卫士的部分库只释放了Visual C++ 2005编译的Release版本的lib而没有&lt;span class="t_tag"&gt;源代码&lt;/span&gt;，会导致链接有问题。详细的说，金山的kwslib和json库的代码是不开源的，不依赖这2个库的9个项目avcenter.sln、bkver.sln、&lt;span class="t_tag"&gt;common&lt;/span&gt;lib.sln、kclear.sln、kmsspeed.sln、&lt;span class="t_tag"&gt;kprocesslib&lt;/span&gt;.lib、 lang.sln、PluginEngine.sln、SafeMon.sln是可以用Visual C++ 2008/2010来编译的，依赖这两个库的ksafe.sln、ksafeperfopt.sln、ksafesvc.sln、netmon.sln、 vlufix.sln是无法链接成功的。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 2、Windows &lt;span class="t_tag"&gt;SDK&lt;/span&gt;建议使用WIN7 sdk&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 金山官方是使用的Windows SDK 6.1版本，经测试用7.0或者7.1版本也是可以编译通过的。下载WIN7 SDK的时候请注意一下，有不同平台共计3个版本的，请好好看说明，下载对应平台的版本。下错了没法安装（比如说WINXP x86下载了win7 sdk x64肯定是没法安装的）的话，得重下一个多G的文件。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 集成Windows SDK到Visual Studio 2005请注意一下包含文件目录的顺序（据说WIN SDK 6.1不需要这样，未证实）：&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 在可执行文件和包含文件选项里，把WIN7 SDK的相应目录放在最前面；&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 在引用&lt;span class="t_tag"&gt;库文件&lt;/span&gt;和库文件选项里，把WIN7 SDK的相应目录放在最下面；&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 3、源代码和库下载&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 请到 code.ijinshan.com 下载源代码和库文件，并将两个文件解压缩，把Lib4PCManager下面的所有目录和文件直接拷贝到解压缩的代码文件中的PCManager目录下去。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 二、编译注意事项&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 1、参照前面的说明，金山只提供了金山开源安全卫士某些库的Visual C++ 2005编译的Release版本，因此必须在编译时选择编译Release版本才能无误，否则会出现链接错误。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 2、先编译commonlib.sln&lt;span class="t_tag"&gt;工程&lt;/span&gt;，再编译其它工程。有些现实无法加载的项目，是因为这些项目的因不开源而删除，改编译其它项目即可。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 3、Lang.sln实际上是拷贝百度OEM版本的金山安全卫士配置文件到编译输出目录，可不编译改项目。编译该项目后，运行开源金山安全卫士会显示是百度的版本。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 三、运行的问题&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 2011年3月17日发布的代码中，Lang.sln配套的XML文件跟代码不符导致编译出来的&lt;span class="t_tag"&gt;程序&lt;/span&gt;会运行出错，不清楚后续是否修改好了。运行有问题的可自行调试或者在后面回复。&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 以上根据回忆撰写，可能跟实际稍后出入。发现问题的可跟帖反馈。本帖在 &lt;a href="http://www.xanyong.com/" target="_blank"&gt;http://www.xanyong.com&lt;/a&gt; 有同步发布的版本，两边讨论均可。我会根据大家的反馈来持续完善和修订。&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;dl class="newrate"&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;&lt;a title="本帖最近评分记录" href="http://bbs.code.ijinshan.com/misc.php?action=viewratings&amp;amp;tid=1045&amp;amp;pid=2098"&gt;1&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;评分人数&lt;/span&gt;&lt;/p&gt;&lt;dl class="newrate"&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;&lt;ul class="s_clear"&gt;&lt;li&gt;&lt;div id="rate_2098_352_menu" class="attach_popup" style="position: absolute; z-index: 301; opacity: 1; left: 416.5px; top: 1518.6px; display: none;"&gt;&lt;p class="cornerlayger"&gt;&lt;span style="font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&lt;em&gt;威望 + 18 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p id="rate_2098_352" class="rateavatar"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-352.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/uc_server/avatar.php?uid=352&amp;amp;size=small" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-352.html" target="_blank"&gt;ruka_libra&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="modact"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="主题操作记录" href="http://bbs.code.ijinshan.com/misc.php?action=viewthreadmod&amp;amp;tid=1045"&gt;本主题由 zapline 于 2011-4-15 13:43 设置高亮&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="useraction"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a&gt;收藏&lt;/a&gt; &lt;a id="share"&gt;分享&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postcontent postbottom"&gt;&lt;div class="signatures" style="max-height: 100px;"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://www.lanok.net/" target="_blank"&gt;&lt;span style="color: red;"&gt;湘勇网络医生0.3 Beta测试版4月20日已发布，欢迎您的试用&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="postcontent"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="threadad"&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="adcontent"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div id="post_2099"&gt;&lt;table id="pid2099" summary="pid2099" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="postauthor" rowspan="2"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a style="margin-left: 20px; font-weight: 800;" href="http://bbs.code.ijinshan.com/space.php?uid=753" target="_blank"&gt;netsurfer008&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="userinfo2099" class="popupmenu_popup userinfopanel" style="display: none; position: absolute; margin-top: -11px;"&gt;&lt;div class="popavatar"&gt;&lt;ul class="profile_side"&gt;&lt;li class="pm"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="发短消息" href="http://bbs.code.ijinshan.com/pm.php?action=new&amp;amp;uid=753"&gt;发短消息&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="buddy"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a id="ajax_buddy_1" title="加为好友" href="http://bbs.code.ijinshan.com/my.php?item=buddylist&amp;amp;newbuddyid=753&amp;amp;buddysubmit=yes" target="_blank"&gt;加为好友&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="popuserinfo"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-753.html" target="_blank"&gt;netsurfer008&lt;/a&gt; &lt;em&gt;当前离线 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;dl class="s_clear"&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;UID&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;753&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;帖子&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;11&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;精华&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;0&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;阅读权限&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;10&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;在线时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;31 小时&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;注册时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2011-3-18&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;最后登录&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2012-1-12&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="imicons"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="查看详细资料" href="http://bbs.code.ijinshan.com/space-uid-753.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/userinfo.gif" alt="查看详细资料" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="avatarfeed"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="avatar"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-753.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/uc_server/avatar.php?uid=753&amp;amp;size=middle" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;em&gt;&lt;a href="http://bbs.code.ijinshan.com/faq.php?action=grouppermission&amp;amp;searchgroupid=10" target="_blank"&gt;小白&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level1.gif" alt="Rank: 1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;&lt;a id="postnum2099" title="复制本帖链接"&gt;&lt;em&gt;2&lt;/em&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/span&gt;&lt;div class="posterinfo"&gt;&lt;div class="pagecontrol"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="authorinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;img id="authicon2099" class="authicon" src="http://bbs.code.ijinshan.com/images/common/online_member.gif" alt="" /&gt; &lt;em id="authorposton2099"&gt;发表于 2011-4-12 17:11&lt;/em&gt; | &lt;a href="http://bbs.code.ijinshan.com/viewthread.php?tid=1045&amp;amp;page=1&amp;amp;authorid=753" rel="nofollow"&gt;只看该作者&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="defaultpost"&gt;&lt;div class="postmessage "&gt;&lt;div class="t_msgfontfix"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="postmessage_2099" class="t_msgfont"&gt;&lt;span style="font-size: 12px;"&gt;看了lanlamer的指南，编译程序一马平川。。问题总于解决啦。。谢谢。。&lt;img src="http://bbs.code.ijinshan.com/images/smilies/default/tongue.gif" alt="" border="0" /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postcontent postbottom"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postactions"&gt;&lt;div class="postact s_clear"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a&gt;TOP&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="threadad"&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="adcontent"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div id="post_2140"&gt;&lt;table id="pid2140" summary="pid2140" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="postauthor" rowspan="2"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a style="margin-left: 20px; font-weight: 800;" href="http://bbs.code.ijinshan.com/space.php?uid=465" target="_blank"&gt;zy3710&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="userinfo2140" class="popupmenu_popup userinfopanel" style="display: none; position: absolute; margin-top: -11px;"&gt;&lt;div class="popavatar"&gt;&lt;ul class="profile_side"&gt;&lt;li class="pm"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="发短消息" href="http://bbs.code.ijinshan.com/pm.php?action=new&amp;amp;uid=465"&gt;发短消息&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="buddy"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a id="ajax_buddy_2" title="加为好友" href="http://bbs.code.ijinshan.com/my.php?item=buddylist&amp;amp;newbuddyid=465&amp;amp;buddysubmit=yes" target="_blank"&gt;加为好友&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="popuserinfo"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-465.html" target="_blank"&gt;zy3710&lt;/a&gt; &lt;em&gt;当前离线 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;dl class="s_clear"&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;UID&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;465&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;帖子&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;12&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;精华&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;0&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;阅读权限&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;10&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;在线时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;3 小时&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;注册时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2011-1-9&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;最后登录&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2011-4-15&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="imicons"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="查看详细资料" href="http://bbs.code.ijinshan.com/space-uid-465.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/userinfo.gif" alt="查看详细资料" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="avatarfeed"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="avatar"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-465.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/uc_server/avatar.php?uid=465&amp;amp;size=middle" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;em&gt;&lt;a href="http://bbs.code.ijinshan.com/faq.php?action=grouppermission&amp;amp;searchgroupid=10" target="_blank"&gt;小白&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level1.gif" alt="Rank: 1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;&lt;a id="postnum2140" title="复制本帖链接"&gt;&lt;em&gt;3&lt;/em&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/span&gt;&lt;div class="posterinfo"&gt;&lt;div class="pagecontrol"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="authorinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;img id="authicon2140" class="authicon" src="http://bbs.code.ijinshan.com/images/common/online_member.gif" alt="" /&gt; &lt;em id="authorposton2140"&gt;发表于 2011-4-15 14:17&lt;/em&gt; | &lt;a href="http://bbs.code.ijinshan.com/viewthread.php?tid=1045&amp;amp;page=1&amp;amp;authorid=465" rel="nofollow"&gt;只看该作者&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="defaultpost"&gt;&lt;div class="postmessage "&gt;&lt;div class="t_msgfontfix"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="postmessage_2140" class="t_msgfont"&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;回复 &lt;a href="http://bbs.code.ijinshan.com/redirect.php?goto=findpost&amp;amp;pid=2098&amp;amp;ptid=1045" target="_blank"&gt;1#&lt;/a&gt; &lt;em&gt;lanlamer&lt;/em&gt; &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp; 2、先编译commlib.sln工程，再编译其它工程。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; commlib.sln没有找到呀，是否为commonlib.sln呢？&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postcontent postbottom"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postactions"&gt;&lt;div class="postact s_clear"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a&gt;TOP&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="threadad"&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="adcontent"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div id="post_2141"&gt;&lt;table id="pid2141" summary="pid2141" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="postauthor" rowspan="2"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a style="margin-left: 20px; font-weight: 800;" href="http://bbs.code.ijinshan.com/space.php?uid=84" target="_blank"&gt;zapline&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="userinfo2141" class="popupmenu_popup userinfopanel" style="display: none; position: absolute; margin-top: -11px;"&gt;&lt;div class="popavatar"&gt;&lt;ul class="profile_side"&gt;&lt;li class="pm"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="发短消息" href="http://bbs.code.ijinshan.com/pm.php?action=new&amp;amp;uid=84"&gt;发短消息&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="buddy"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a id="ajax_buddy_3" title="加为好友" href="http://bbs.code.ijinshan.com/my.php?item=buddylist&amp;amp;newbuddyid=84&amp;amp;buddysubmit=yes" target="_blank"&gt;加为好友&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="popuserinfo"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-84.html" target="_blank"&gt;zapline&lt;/a&gt; &lt;em&gt;当前离线 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;dl class="s_clear"&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;UID&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;84&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;帖子&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;127&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;精华&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;0&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;阅读权限&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;200&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;来自&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;湖南&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;在线时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;295 小时&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;注册时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2010-12-10&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;最后登录&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2012-1-15&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="imicons"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="QQ" href="http://wpa.qq.com/msgrd?V=1&amp;amp;Uin=278998871&amp;amp;Site=%E5%BC%80%E6%BA%90%E5%8D%AB%E5%A3%AB%E7%A4%BE%E5%8C%BA%E8%AE%BA%E5%9D%9B&amp;amp;Menu=yes" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/qq.gif" alt="QQ" /&gt;&lt;/a&gt;&lt;a title="查看个人网站" href="http://hi.baidu.com/zapline" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/forumlink.gif" alt="查看个人网站" /&gt;&lt;/a&gt;&lt;a title="查看详细资料" href="http://bbs.code.ijinshan.com/space-uid-84.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/userinfo.gif" alt="查看详细资料" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="avatarfeed"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="avatar"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-84.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/uc_server/avatar.php?uid=84&amp;amp;size=middle" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;em&gt;&lt;a href="http://bbs.code.ijinshan.com/faq.php?action=grouppermission&amp;amp;searchgroupid=1" target="_blank"&gt;管理员&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level3.gif" alt="Rank: 9" /&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level3.gif" alt="Rank: 9" /&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level1.gif" alt="Rank: 9" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;&lt;a id="postnum2141" title="复制本帖链接"&gt;&lt;em&gt;4&lt;/em&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/span&gt;&lt;div class="posterinfo"&gt;&lt;div class="pagecontrol"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="authorinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;img id="authicon2141" class="authicon" src="http://bbs.code.ijinshan.com/images/common/online_admin.gif" alt="" /&gt; &lt;em id="authorposton2141"&gt;发表于 2011-4-15 14:34&lt;/em&gt; | &lt;a href="http://bbs.code.ijinshan.com/viewthread.php?tid=1045&amp;amp;page=1&amp;amp;authorid=84" rel="nofollow"&gt;只看该作者&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="defaultpost"&gt;&lt;div class="postmessage "&gt;&lt;div class="t_msgfontfix"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="postmessage_2141" class="t_msgfont"&gt;&lt;div class="quote"&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;span style="font-size: 12px;"&gt;回复&amp;nbsp;&amp;nbsp;lanlamer &lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp; 2、先编译commlib.sln工程，再编译其它工程。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; commlib.sln没有找到呀，是否为common ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &lt;span style="color: #999999;"&gt;zy3710 发表于 2011-4-15 14:17&lt;/span&gt; &lt;a href="http://bbs.code.ijinshan.com/redirect.php?goto=findpost&amp;amp;pid=2140&amp;amp;ptid=1045" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/common/back.gif" alt="" width="13" height="13" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp; yes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postcontent postbottom"&gt;&lt;div class="signatures" style="max-height: 100px;"&gt;&lt;span style="font-size: 12px;"&gt;畢竟回憶是遠了暗了的暮靄，希望才是近了亮了的晨光。&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postactions"&gt;&lt;div class="postact s_clear"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a&gt;TOP&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="threadad"&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="adcontent"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div id="post_3615"&gt;&lt;table id="pid3615" summary="pid3615" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="postauthor" rowspan="2"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a style="margin-left: 20px; font-weight: 800;" href="http://bbs.code.ijinshan.com/space.php?uid=1723" target="_blank"&gt;568588050&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="userinfo3615" class="popupmenu_popup userinfopanel" style="display: none; position: absolute; margin-top: -11px;"&gt;&lt;div class="popavatar"&gt;&lt;ul class="profile_side"&gt;&lt;li class="pm"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="发短消息" href="http://bbs.code.ijinshan.com/pm.php?action=new&amp;amp;uid=1723"&gt;发短消息&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="buddy"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a id="ajax_buddy_4" title="加为好友" href="http://bbs.code.ijinshan.com/my.php?item=buddylist&amp;amp;newbuddyid=1723&amp;amp;buddysubmit=yes" target="_blank"&gt;加为好友&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="popuserinfo"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-1723.html" target="_blank"&gt;568588050&lt;/a&gt; &lt;em&gt;当前离线 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;dl class="s_clear"&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;UID&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;1723&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;帖子&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;9&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;精华&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;0&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;阅读权限&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;10&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;在线时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;6 小时&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;注册时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2011-12-6&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;最后登录&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2012-1-14&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="imicons"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="查看详细资料" href="http://bbs.code.ijinshan.com/space-uid-1723.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/userinfo.gif" alt="查看详细资料" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="avatarfeed"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="avatar"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-1723.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/uc_server/avatar.php?uid=1723&amp;amp;size=middle" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;em&gt;&lt;a href="http://bbs.code.ijinshan.com/faq.php?action=grouppermission&amp;amp;searchgroupid=10" target="_blank"&gt;小白&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level1.gif" alt="Rank: 1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;&lt;a id="postnum3615" title="复制本帖链接"&gt;&lt;em&gt;5&lt;/em&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/span&gt;&lt;div class="posterinfo"&gt;&lt;div class="pagecontrol"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="authorinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;img id="authicon3615" class="authicon" src="http://bbs.code.ijinshan.com/images/common/online_member.gif" alt="" /&gt; &lt;em id="authorposton3615"&gt;发表于 2011-12-12 15:03&lt;/em&gt; | &lt;a href="http://bbs.code.ijinshan.com/viewthread.php?tid=1045&amp;amp;page=1&amp;amp;authorid=1723" rel="nofollow"&gt;只看该作者&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="defaultpost"&gt;&lt;div class="postmessage "&gt;&lt;div class="t_msgfontfix"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="postmessage_3615" class="t_msgfont"&gt;&lt;span style="font-size: 12px;"&gt;我编译commonlib.sln 也报错呀&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; ------ 已启动生成: 项目: BeikeUtils, 配置: Release Win32 ------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 正在执行预生成事件...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 正在编译...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; ConditionEvaluate.cpp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(18) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;OpenKeyEx&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(19) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(19) : warning C4183: &amp;ldquo;OpenKeyEx&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(39) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;OpenKeyEx&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(39) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(40) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(40) : warning C4183: &amp;ldquo;OpenKeyEx&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;GetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;d:\tip\oss\pcmanager\src\publish\common/registrywow.h(314): 参见对正在编译的类 模板 实例化&amp;ldquo;CRegistryWow&amp;lt;T&amp;gt;&amp;rdquo;的引用&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(115) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(124) : warning C4183: &amp;ldquo;GetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(126) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;SetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(126) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(127) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(136) : warning C4183: &amp;ldquo;SetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(138) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;DeleteValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(138) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(139) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(148) : warning C4183: &amp;ldquo;DeleteValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(61) : error C3861: &amp;ldquo;Wow64DisableWow64FsRedirection&amp;rdquo;: 找不到标识符&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(65) : error C3861: &amp;ldquo;Wow64RevertWow64FsRedirection&amp;rdquo;: 找不到标识符&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;GetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;.\ConditionEvaluate.cpp(97): 参见对正在编译的类 模板 实例化&amp;ldquo;CRegistryWow&amp;lt;T&amp;gt;&amp;rdquo;的引用&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;with&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;T=2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(115) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(115) : warning C4183: &amp;ldquo;GetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(126) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;SetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(126) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(127) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(127) : warning C4183: &amp;ldquo;SetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(138) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;DeleteValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(138) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(139) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(139) : warning C4183: &amp;ldquo;DeleteValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; .\ConditionEvaluate.cpp(507) : warning C4800: &amp;ldquo;BOOL&amp;rdquo;: 将值强制为布尔值&amp;ldquo;true&amp;rdquo;或&amp;ldquo;false&amp;rdquo;(性能警告)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; BeikeUtils.cpp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(18) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;OpenKeyEx&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(18) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(19) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(19) : warning C4183: &amp;ldquo;OpenKeyEx&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(39) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;OpenKeyEx&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(39) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(40) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(40) : warning C4183: &amp;ldquo;OpenKeyEx&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;GetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;d:\tip\oss\pcmanager\src\publish\common/registrywow.h(314): 参见对正在编译的类 模板 实例化&amp;ldquo;CRegistryWow&amp;lt;T&amp;gt;&amp;rdquo;的引用&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(115) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(124) : warning C4183: &amp;ldquo;GetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(126) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;SetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(126) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(127) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(136) : warning C4183: &amp;ldquo;SetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(138) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;DeleteValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(139) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(148) : warning C4183: &amp;ldquo;DeleteValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(114) : error C2146: 语法错误 : 缺少&amp;ldquo;;&amp;rdquo;(在标识符&amp;ldquo;GetValue&amp;rdquo;的前面)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;.\BeikeUtils.cpp(479): 参见对正在编译的类 模板 实例化&amp;ldquo;CRegistryWow&amp;lt;T&amp;gt;&amp;rdquo;的引用&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;with&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;T=2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(127) : warning C4183: &amp;ldquo;SetValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; d:\tip\oss\pcmanager\src\publish\common/registrywow.h(139) : warning C4183: &amp;ldquo;DeleteValue&amp;rdquo;: 缺少返回类型；假定为返回&amp;ldquo;int&amp;rdquo;的成员函数&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; 生成日志保存在&amp;ldquo;file://d:\tip\oss\pcmanager\src\src_commonlib\BeikeUtils\Release\BuildLog.htm&amp;rdquo;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; BeikeUtils - 52 个错误，17 个警告&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 12px;"&gt; ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postcontent postbottom"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postactions"&gt;&lt;div class="postact s_clear"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a&gt;TOP&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="threadad"&gt;&lt;td class="postauthor"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="adcontent"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;table id="pid3686" summary="pid3686" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="postauthor" rowspan="2"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a style="margin-left: 20px; font-weight: 800;" href="http://bbs.code.ijinshan.com/space.php?uid=1798" target="_blank"&gt;fuckreg&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="userinfo3686" class="popupmenu_popup userinfopanel" style="display: none; position: absolute; margin-top: -11px;"&gt;&lt;div class="popavatar"&gt;&lt;ul class="profile_side"&gt;&lt;li class="pm"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="发短消息" href="http://bbs.code.ijinshan.com/pm.php?action=new&amp;amp;uid=1798"&gt;发短消息&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="buddy"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a id="ajax_buddy_5" title="加为好友" href="http://bbs.code.ijinshan.com/my.php?item=buddylist&amp;amp;newbuddyid=1798&amp;amp;buddysubmit=yes" target="_blank"&gt;加为好友&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="popuserinfo"&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-1798.html" target="_blank"&gt;fuckreg&lt;/a&gt; &lt;em&gt;当前离线 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;dl class="s_clear"&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;UID&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;1798&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;帖子&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;3&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;精华&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;0&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;阅读权限&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;10&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;在线时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;0 小时&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;注册时间&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2011-12-28&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span style="font-size: 12px;"&gt;最后登录&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;span style="font-size: 12px;"&gt;2011-12-30&amp;nbsp;&lt;/span&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="imicons"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a title="查看个人网站" href="http://www.backtrack.org.cn/" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/forumlink.gif" alt="查看个人网站" /&gt;&lt;/a&gt;&lt;a title="查看详细资料" href="http://bbs.code.ijinshan.com/space-uid-1798.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/userinfo.gif" alt="查看详细资料" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="avatarfeed"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size: 12px;"&gt;&lt;a name="lastpost"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;div class="avatar"&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://bbs.code.ijinshan.com/space-uid-1798.html" target="_blank"&gt;&lt;img src="http://bbs.code.ijinshan.com/uc_server/avatar.php?uid=1798&amp;amp;size=middle" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;em&gt;&lt;a href="http://bbs.code.ijinshan.com/faq.php?action=grouppermission&amp;amp;searchgroupid=10" target="_blank"&gt;小白&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;img src="http://bbs.code.ijinshan.com/images/default/star_level1.gif" alt="Rank: 1" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td class="postcontent"&gt;&lt;div class="postinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;strong&gt;&lt;a id="postnum3686" title="复制本帖链接"&gt;&lt;em&gt;6&lt;/em&gt;&lt;sup&gt;#&lt;/sup&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/span&gt;&lt;div class="posterinfo"&gt;&lt;div class="pagecontrol"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="authorinfo"&gt;&lt;span style="font-size: 12px;"&gt;&lt;img id="authicon3686" class="authicon" src="http://bbs.code.ijinshan.com/images/common/online_member.gif" alt="" /&gt; &lt;em id="authorposton3686"&gt;发表于 2011-12-30 09:30&lt;/em&gt; | &lt;a href="http://bbs.code.ijinshan.com/viewthread.php?tid=1045&amp;amp;page=1&amp;amp;authorid=1798" rel="nofollow"&gt;只看该作者&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="defaultpost"&gt;&lt;div class="postmessage "&gt;&lt;div class="t_msgfontfix"&gt;&lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="postmessage_3686" class="t_msgfont"&gt;&lt;span style="font-size: 12px;"&gt;学习了~难得有开源的产品让更多的企业进入安全领域&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2323364.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2012/01/16/2323364.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/12/10/2283561.html</id><title type="text">TabControl添加关闭按钮</title><summary type="text">代码const int CLOSE_SIZE = 4;//清空控件this.MainTabControl.TabPages.Clear();//绘制的方式OwnerDrawFixed表示由窗体绘制大小也一样this.MainTabControl.DrawMode=TabDrawMode.OwnerDrawFixed;this.MainTabControl.Padding=newSystem.Drawing.Point(CLOSE_SIZE,CLOSE_SIZE);this.MainTabControl.DrawItem+=newDrawItemEventHandler(this.tabCont</summary><published>2011-12-10T13:25:00Z</published><updated>2011-12-10T13:25:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/12/10/2283561.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/12/10/2283561.html"/><content type="html">&lt;p&gt;&lt;img class="code_img_opened" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="" /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;/div&gt;&lt;div class="cnblogs_code_open"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;清空控件&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MainTabControl.TabPages.Clear();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;绘制的方式OwnerDrawFixed表示由窗体绘制大小也一样&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MainTabControl.DrawMode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TabDrawMode.OwnerDrawFixed;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MainTabControl.Padding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Drawing.Point(CLOSE_SIZE,&amp;nbsp;CLOSE_SIZE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MainTabControl.DrawItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;DrawItemEventHandler(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.tabControl2_DrawItem);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.MainTabControl.MouseDown&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Forms.MouseEventHandler(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.tabControl2_MouseDown);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;private void tabControl2_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rectangle myTabRect = this.MainTabControl.GetTabRect(e.Index);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //先添加TabPage属性&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , this.Font, SystemBrushes.ControlText, myTabRect.X + 2, myTabRect.Y + 2);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //再画一个矩形框&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Pen p = new Pen(Color.Red))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTabRect.Width = CLOSE_SIZE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTabRect.Height = CLOSE_SIZE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Graphics.DrawRectangle(p, myTabRect);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //填充矩形框&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Color recColor = e.State == DrawItemState.Selected ? Color.Red : Color.Red;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Brush b = new SolidBrush(recColor))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Graphics.FillRectangle(b, myTabRect);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //画关闭符号&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Pen objpen = new Pen(Color.Red))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //"\"线&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point p1 = new Point(myTabRect.X + 3, myTabRect.Y + 3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point p2 = new Point(myTabRect.X + myTabRect.Width - 3, myTabRect.Y + myTabRect.Height - 3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Graphics.DrawLine(objpen , p1, p2);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //"/"线&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point p3 = new Point(myTabRect.X + 3, myTabRect.Y + myTabRect.Height - 3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Point p4 = new Point(myTabRect.X + myTabRect.Width - 3, myTabRect.Y + 3);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Graphics.DrawLine(objpen , p3, p4);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Graphics.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void tabControl2_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.Button == MouseButtons.Left)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int x = e.X, y = e.Y;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //计算关闭区域&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rectangle myTabRect = this.MainTabControl.GetTabRect(this.MainTabControl.SelectedIndex);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTabRect.Width = CLOSE_SIZE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTabRect.Height = CLOSE_SIZE;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //如果鼠标在区域内就关闭选项卡&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool isClose = x &amp;gt; myTabRect.X &amp;amp;&amp;amp; x &amp;lt; myTabRect.Right&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; y &amp;gt; myTabRect.Y &amp;amp;&amp;amp; y &amp;lt; myTabRect.Bottom;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isClose == true)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.MainTabControl.TabPages.Remove(this.MainTabControl.SelectedTab);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2283561.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/12/10/2283561.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262303.html</id><title type="text">string、wstring、cstring、 char、 tchar、int、dword转换方法</title><summary type="text">最近编程一直头痛这集中类型的转化，明知都可以转却总是记不住，不断的上网查来查去，在这里小结一下。以备以后方便使用，当然有些方法可能不是最新的，或者最简单的，但是对于自己已经了解的使用起来应该方便的多：1》string转wstringwstring s2ws(const string&amp; s){ _bstr_t t = s.c_str(); wchar_t* pwchar = (wchar_t*)t; wstring result = pwchar; return result;}2》wstring转stringstring ws2s(const wstring&amp; ws){ _bs</summary><published>2011-11-24T13:29:00Z</published><updated>2011-11-24T13:29:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262303.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262303.html"/><content type="html">最近编程一直头痛这集中类型的转化，明知都可以转却总是记不住，不断的上网查来查去，在这里小结一下。以备以后方便使用，当然有些方法可能不是最新的，或者最简单的，但是对于自己已经了解的使用起来应该方便的多：&lt;span&gt;1》string转wstring&lt;/span&gt;wstring s2ws(const string&amp;amp; s){ _bstr_t t = s.c_str(); wchar_t* pwchar = (wchar_t*)t; wstring result = pwchar; return result;}&lt;span&gt;2》wstring转string&lt;/span&gt;string ws2s(const wstring&amp;amp; ws){ _bstr_t t = ws.c_str(); char* pchar = (char*)t; string result = pchar; return result;}&lt;span&gt;3》string转cstring&amp;nbsp;&lt;/span&gt;a）CString.format("%s", string.c_str()); &amp;nbsp;&lt;p&gt;&amp;nbsp;&lt;/p&gt;b）CString StringToCString(string str){CString result;for (int i=0;i&amp;lt;(int)str.length();i++){&amp;nbsp;result+=str[i];}return result;}&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;span&gt;4》cstring转string&lt;/span&gt;a）void ConvertCString2string(CString&amp;amp; strSrc,std::string&amp;amp; strDes){#ifndef UNICODE strDes = strSrc;#else USES_CONVERSION; strDes = W2A(strSrc.LockBuffer()); strSrc.UnlockBuffer();#endif}b）string s(CString.GetBuffer()); &amp;nbsp;ReleaseBuffer()；GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.c）string CStringToString(CString cstr)&lt;br /&gt;{&lt;br /&gt;string result(cstr.GetLength(),'e');&lt;br /&gt;for (int i=0;i&amp;lt;cstr.GetLength();i++)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;result[i]=(char)cstr[i];&lt;br /&gt;}&lt;br /&gt;return result;&lt;br /&gt;}&lt;span&gt;5》string转char *&lt;/span&gt;a）char *p = string.c_str();举例： string aa("aaa"); char *c=aa.c_str(); string mngName； char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());b）一个一个字符的赋值&lt;p&gt;&amp;nbsp;&lt;/p&gt;char *p = new char[sring的长度+1];p[string的长度]='/0';但是要注意最后赋值'/0'!!!&lt;p&gt;&amp;nbsp;&lt;/p&gt;char * StringToChar(string &amp;amp;str){int len=str.length();char * p= new char[len+1];for (int i=0;i&amp;lt;len;i++){p[i]=str[i];}p[len]='/0';}&lt;span&gt;6》char* 转string&lt;/span&gt;string s(char *); 你的只能初始化，在不是初始化的地方最好还是用assign()；string CharToString(char*arr,int count)&lt;br /&gt;{&lt;br /&gt;string result(arr,4);&lt;br /&gt;return result;&lt;br /&gt;}string是ansi编码字符charTCHAR是unicode编码字符wchar_t&lt;span&gt;7》string转TCHAR *&lt;/span&gt;/*&lt;br /&gt;&amp;nbsp;&amp;nbsp;wBuf 申明为指针即可。&lt;br /&gt;*/&lt;br /&gt;wchar_t *chr2wch(const char *buffer)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t len = strlen(buffer);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; size_t wlen = MultiByteToWideChar(CP_ACP, 0, (const char*)buffer, int(len), NULL, 0);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wchar_t *wBuf = new wchar_t[wlen + 1];&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MultiByteToWideChar(CP_ACP, 0, (const char*)buffer, int(len), wBuf, int(wlen));&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return wBuf;&lt;br /&gt;}&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;8》TCHAR *转string&lt;/span&gt;char * wch2chr(LPCTSTR lpString)&lt;br /&gt;{&lt;br /&gt;// Calculate unicode string length.&lt;br /&gt;UINT len = wcslen(lpString)*2;&lt;br /&gt;char *buf = (char *)malloc(len);&lt;br /&gt;UINT i = wcstombs(buf,lpString,len);&lt;br /&gt;return buf;&lt;br /&gt;}&lt;span&gt;9》string 和char*转int&lt;/span&gt;string 转 int&lt;br /&gt;..............................&lt;br /&gt;char* 转 int&amp;nbsp;&lt;br /&gt;&amp;nbsp;#include &amp;lt;stdlib.h&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;int atoi(const char *nptr);&amp;nbsp;&lt;br /&gt;&amp;nbsp;long atol(const char *nptr);&amp;nbsp;&lt;br /&gt;&amp;nbsp;long long atoll(const char *nptr);&amp;nbsp;&lt;br /&gt;&amp;nbsp;long long atoq(const char *nptr);&amp;nbsp;&lt;span&gt;10》int转char*和string&lt;/span&gt;在stdlib.h中有个函数itoa()&amp;nbsp;&lt;br /&gt;&amp;nbsp;itoa的用法：&amp;nbsp;&lt;br /&gt;&amp;nbsp;itoa(i,num,10);&amp;nbsp;&lt;br /&gt;&amp;nbsp;i 需要转换成字符的数字&amp;nbsp;&lt;br /&gt;&amp;nbsp;num 转换后保存字符的变量&amp;nbsp; &lt;span&gt;11》wstring转Csting&lt;/span&gt;std::wstring转CStringCString str( filename.c_str() );&amp;nbsp; &lt;span&gt;12》Cstring转wstring&lt;/span&gt;CString转std::wstringstd::wstring str = filename.GetString();&lt;span&gt;13》Cstring转char *&lt;/span&gt;&lt;p&gt;CString cstr(asdd);&lt;/p&gt;const char* ch = (LPCTSTR)cstr;举例：&lt;p&gt;CString &amp;nbsp; str= "i &amp;nbsp; am &amp;nbsp; good ";&amp;nbsp;&lt;/p&gt;char* &amp;nbsp; lp=str.GetBuffer(str.GetLength());&amp;nbsp;str.ReleaseBuffer();&amp;nbsp;&lt;p&gt;&lt;span&gt;14》char *转Cstring&lt;/span&gt;&lt;/p&gt;举例：&lt;p&gt;CString &amp;nbsp; str;&amp;nbsp;&lt;/p&gt;char &amp;nbsp; pStr[100];&amp;nbsp;str.Format( "%s ",pStr);&lt;span&gt;15》TCHar转char&lt;/span&gt;***********************************************************************&amp;nbsp;* 函数： THCAR2Char&amp;nbsp;* 描述：将TCHAR* 转换为 char*&amp;nbsp;***********************************************************************&amp;nbsp;char* CPublic::THCAR2char(TCHAR* tchStr)&amp;nbsp;{&amp;nbsp;int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符，因此不用普通计算长度&amp;nbsp;char* chRtn = new char[iLen+1]&amp;nbsp;wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值&amp;nbsp;return chRtn;&amp;nbsp;}&amp;nbsp;&lt;p&gt;&lt;span&gt;16》char转tchar&lt;/span&gt;&lt;/p&gt;定义了UNICODE宏之后，TCHAR就是宽字符wchar_t，否则TCHAR跟char是一样的^_&lt;p&gt;&amp;nbsp;&lt;/p&gt;具体问题具体分析，浮云啊，一切皆是浮云.....以下摘录自网络：&lt;span&gt;..............................................................&lt;/span&gt;&lt;div&gt;&lt;span&gt;《C++标准函数库》中说的 &amp;nbsp;&lt;/span&gt;&lt;span&gt;有三个函数可以将字符串的内容转换为字符数组和C&amp;mdash;string &amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;1.data(),返回没有&amp;rdquo;/0&amp;ldquo;的字符串数组 &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;2,c_str()，返回有&amp;rdquo;/0&amp;ldquo;的字符串数组 &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;3，copy()&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;.................................................................&lt;/span&gt;&lt;span&gt;int 转 CString：&lt;/span&gt;&lt;span&gt;&lt;span&gt;CString.Format("%d",int);&lt;/span&gt;&lt;/span&gt;&lt;span&gt;...............................&lt;/span&gt;&lt;span&gt;string 转 CString &amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;CString.format("%s", string.c_str()); &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;用c_str()确实比data()要好.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.......................................&lt;/span&gt;&lt;span&gt;char* 转 CString &amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;CString.format("%s", char*);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;CString strtest; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;char * charpoint; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;charpoint="give string a value"; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;strtest=charpoint; //直接付值&lt;/span&gt;&lt;span&gt;...................................................................&lt;/span&gt;&lt;span&gt;CString 转 int&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;CString&amp;nbsp; ss="1212.12"; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;int temp=atoi(ss); //atoi _atoi64或atol&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;将字符转换为整数，可以使用atoi、_atoi64或atol。 &amp;nbsp;&lt;/span&gt;&lt;span&gt;int int_chage = atoi((lpcstr)ss) ;&lt;/span&gt;&lt;span&gt;或：&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; CString str = "23";&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; UINT uint;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; sscanf(str, "%d", uint);&lt;/span&gt;&lt;span&gt;..............................&lt;/span&gt;&lt;span&gt;string 转 int&lt;/span&gt;&lt;span&gt;..............................&lt;/span&gt;&lt;span&gt;char* 转 int&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;#include &amp;lt;stdlib.h&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;int atoi(const char *nptr);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;long atol(const char *nptr);&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;long long atoll(const char *nptr);&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;long long atoq(const char *nptr);&amp;nbsp;&lt;/span&gt;&lt;span&gt;...................................................................&lt;/span&gt;&lt;span&gt;CString 转 string&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;string s(CString.GetBuffer()); &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;..........................................&lt;/span&gt;&lt;span&gt;int 转 string&amp;nbsp;&lt;/span&gt;&lt;span&gt;..........................................&lt;/span&gt;&lt;span&gt;char* 转 string &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;string s(char *); &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;你的只能初始化，在不是初始化的地方最好还是用assign().&lt;/span&gt;&lt;/span&gt;&lt;span&gt;...................................................................&lt;/span&gt;&lt;span&gt;CString 转 char *&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;CString strtest="wwwwttttttt";&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;charpoint=strtest.GetBuffer(strtest.GetLength());&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;CString转换 char[100] &amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;char a[100]; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;CString str("aaaaaa"); &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;strncpy(a,(LPCTSTR)str,sizeof(a));&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;CString&amp;nbsp; str="aaa"; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;char*&amp;nbsp; ch; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;ch=(char*)(LPCTSTR)str;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;..........................................&lt;/span&gt;&lt;span&gt;int 转 char *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;在stdlib.h中有个函数itoa()&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;itoa的用法：&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;itoa(i,num,10);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;i 需要转换成字符的数字&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;num 转换后保存字符的变量&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;10 转换数字的基数（进制）10就是说按照10进制转换数字。还可以是2，8，16等等你喜欢的进制类型&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;原形：char *itoa(int value, char* string, int radix);&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;实例：&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;#include "stdlib.h"&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;#include "stdio.h"&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;main()&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;int i=1234;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;char s[5];&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;itoa(i,s,10);&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;printf("%s",s);&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;getchar();&amp;nbsp;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;..........................................&lt;/span&gt;&lt;span&gt;string 转 char * &amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;char *p = string.c_str(); &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;string aa("aaa");&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;char *c=aa.c_str();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;string mngName；&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;char t[200];&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;memset(t,0,200);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;strcpy(t,mngName.c_str());&lt;/span&gt;&lt;span&gt;...................................................................&lt;/span&gt;&lt;span&gt;标准C里没有string,char *==char []==string&lt;/span&gt;&lt;/div&gt;&lt;span&gt;可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *，用操&lt;/span&gt;&lt;span&gt;作符（LPCSTR）CString就可以了。&lt;/span&gt;&lt;div&gt;&lt;span&gt;cannot convert from 'const char *' to 'char *'&amp;nbsp;&lt;/span&gt;&lt;span&gt;const char *c=aa.c_str(); &amp;nbsp;&lt;/span&gt;&lt;span&gt;string.c_str()只能转换成const char *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;span&gt;// 使用CString必须使用MFC，并且不可包含&amp;lt;windows.h&amp;gt;&lt;/span&gt;&lt;span&gt;#define _AFXDLL&lt;/span&gt;&lt;span&gt;#include &amp;lt;afx.h&amp;gt;&lt;/span&gt;&lt;span&gt;using namespace std;&lt;/span&gt;&lt;span&gt;//&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-&lt;/span&gt;&lt;span&gt;//将 单字节char* 转换为 宽字节 wchar*&lt;/span&gt;&lt;span&gt;inline wchar_t* AnsiToUnicode( const char* szStr )&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;int nLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, NULL, 0 );&lt;/span&gt;&lt;span&gt;if (nLen == 0)&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; return NULL;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;wchar_t* pResult = new wchar_t[nLen];&lt;/span&gt;&lt;span&gt;MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, pResult, nLen );&lt;/span&gt;&lt;span&gt;return pResult;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;//&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-&lt;/span&gt;&lt;span&gt;// 将 宽字节wchar_t* 转换 单字节char*&lt;/span&gt;&lt;span&gt;inline char* UnicodeToAnsi( const wchar_t* szStr )&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;int nLen = WideCharToMultiByte( CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL );&lt;/span&gt;&lt;span&gt;if (nLen == 0)&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; return NULL;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;char* pResult = new char[nLen];&lt;/span&gt;&lt;span&gt;WideCharToMultiByte( CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL );&lt;/span&gt;&lt;span&gt;return pResult;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;//&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-&lt;/span&gt;&lt;span&gt;// 将单字符 string 转换为宽字符 wstring&lt;/span&gt;&lt;span&gt;inline void Ascii2WideString( const std::string&amp;amp; szStr, std::wstring&amp;amp; wszStr )&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;int nLength = MultiByteToWideChar( CP_ACP, 0, szStr.c_str(), -1, NULL, NULL );&lt;/span&gt;&lt;span&gt;wszStr.resize(nLength);&lt;/span&gt;&lt;span&gt;LPWSTR lpwszStr = new wchar_t[nLength];&lt;/span&gt;&lt;span&gt;MultiByteToWideChar( CP_ACP, 0, szStr.c_str(), -1, lpwszStr, nLength );&lt;/span&gt;&lt;span&gt;wszStr = lpwszStr;&lt;/span&gt;&lt;span&gt;delete [] lpwszStr;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;span&gt;//&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-&lt;/span&gt;&lt;span&gt;int _tmain(int argc, _TCHAR* argv[])&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;char*&amp;nbsp;&amp;nbsp; pChar = &amp;ldquo;我喜欢char&amp;rdquo;;&lt;/span&gt;&lt;span&gt;wchar_t* pWideChar = L&amp;rdquo;我讨厌wchar_t&amp;rdquo;;&lt;/span&gt;&lt;span&gt;wchar_t&amp;nbsp;&amp;nbsp; tagWideCharList[100] ;&lt;/span&gt;&lt;span&gt;char&amp;nbsp;&amp;nbsp; ch = &amp;lsquo;A&amp;rsquo;;&lt;/span&gt;&lt;span&gt;char&amp;nbsp;&amp;nbsp; tagChar[100] = {NULL};&lt;/span&gt;&lt;span&gt;CString&amp;nbsp;&amp;nbsp; cStr;&lt;/span&gt;&lt;span&gt;std::string str;&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：设置语言环境以便输出WideChar&lt;/span&gt;&lt;span&gt;setlocale(LC_ALL,&amp;rdquo;chs&amp;rdquo;);&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注： char* 转换 wchar_t*&lt;/span&gt;&lt;span&gt;// 注： wchar_t 未重载 &amp;lt;&amp;lt; ，所以不可使用 cout &amp;lt;&amp;lt; 输出&lt;/span&gt;&lt;span&gt;pWideChar = AnsiToUnicode( pChar );&lt;/span&gt;&lt;span&gt;// 注：printf(&amp;rdquo;%ls&amp;rdquo;) 和 wprintf(L&amp;rdquo;%s&amp;rdquo;) 一致&lt;/span&gt;&lt;span&gt;printf( &amp;ldquo;%ls/n&amp;rdquo;, pWideChar );&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：wchar_t* 转换 wchar_t[]&lt;/span&gt;&lt;span&gt;wcscpy ( tagWideCharList, pWideChar );&lt;/span&gt;&lt;span&gt;wprintf( L&amp;rdquo;%s/n&amp;rdquo;, tagWideCharList );&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：wchar_t[] 转换 wchar_t*&lt;/span&gt;&lt;span&gt;pWideChar = tagWideCharList;&lt;/span&gt;&lt;span&gt;wprintf( L&amp;rdquo;%s/n&amp;rdquo;, pWideChar );&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：char 转换 string&lt;/span&gt;&lt;span&gt;str.insert( str.begin(), ch );&lt;/span&gt;&lt;span&gt;cout &amp;lt;&amp;lt; str &amp;lt;&amp;lt; endl;&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：wchar_t* 转换 string&lt;/span&gt;&lt;span&gt;pWideChar = new wchar_t[str.length()];&lt;/span&gt;&lt;span&gt;swprintf( pWideChar, L&amp;rdquo;%s&amp;rdquo;, str.c_str());&lt;/span&gt;&lt;span&gt;wprintf( L&amp;rdquo;%s/n&amp;rdquo;, pWideChar );&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：string 转换 char*&lt;/span&gt;&lt;span&gt;pChar = const_cast&amp;lt;char*&amp;gt;(str.c_str());&lt;/span&gt;&lt;span&gt;cout &amp;lt;&amp;lt; pChar &amp;lt;&amp;lt; endl;&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：char* 转换 string&lt;/span&gt;&lt;span&gt;str = std::string(pChar);&lt;/span&gt;&lt;span&gt;// 注： cout 的 &amp;lt;&amp;lt; 重载了string, 若printf 的话必须 printf(&amp;rdquo;%s&amp;rdquo;, str.c_str());&lt;/span&gt;&lt;span&gt;//&amp;nbsp;&amp;nbsp; 而不可 print( &amp;ldquo;%s&amp;rdquo;, str ); 因为 str 是个 string 类&lt;/span&gt;&lt;span&gt;cout &amp;lt;&amp;lt; str &amp;lt;&amp;lt; endl;&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：string 转换 char[]&lt;/span&gt;&lt;span&gt;str = &amp;ldquo;无聊啊无聊&amp;rdquo;;&lt;/span&gt;&lt;span&gt;strcpy( tagChar, str.c_str() );&lt;/span&gt;&lt;span&gt;printf( &amp;ldquo;%s/n&amp;rdquo;, tagChar );&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：string 转换 CString;&lt;/span&gt;&lt;span&gt;cStr = str.c_str();&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：CString 转换 string&lt;/span&gt;&lt;span&gt;str = string(cStr.GetBuffer(cStr.GetLength()));&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：char* 转换 CString&lt;/span&gt;&lt;span&gt;cStr = pChar;&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：CString 转换 char*&lt;/span&gt;&lt;span&gt;pChar = cStr.GetBuffer( cStr.GetLength() );&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：CString 转换 char[]&lt;/span&gt;&lt;span&gt;strncpy( tagChar, (LPCTSTR)CString, sizeof(tagChar));&lt;/span&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;// 注：CString 转换 wchar_t*&lt;/span&gt;&lt;span&gt;pWideChar = cStr.AllocSysString();&lt;/span&gt;&lt;span&gt;printf( &amp;ldquo;%ls/n&amp;rdquo;, pWideChar );&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2262303.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262303.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262297.html</id><title type="text">string,wstring,CString,TCHAR,char*之间常用转换</title><summary type="text">因为自己比较健忘，所以保存下来以备不时之需。************************************************************************ 函数： TransCStringToTCHAR* 描述：将CString 转换为 TCHAR** 日期：***********************************************************************TCHAR* CString2TCHAR(CString &amp;str){int iLen = str.GetLength();TCHAR* szRs = ne</summary><published>2011-11-24T13:26:00Z</published><updated>2011-11-24T13:26:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262297.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262297.html"/><content type="html">&lt;p&gt;因为自己比较健忘，所以保存下来以备不时之需。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;hr /&gt;&lt;hr /&gt;&lt;p&gt;***********************************************************************&lt;br /&gt;* 函数： TransCStringToTCHAR&lt;br /&gt;* 描述：将CString 转换为 TCHAR*&lt;br /&gt;* 日期：&lt;br /&gt;***********************************************************************&lt;br /&gt;TCHAR* CString2TCHAR(CString &amp;amp;str)&lt;br /&gt;{&lt;br /&gt;int iLen = str.GetLength();&lt;br /&gt;TCHAR* szRs = new TCHAR[iLen];&lt;br /&gt;lstrcpy(szRs, str.GetBuffer(iLen));&lt;br /&gt;str.ReleaseBuffer();&lt;br /&gt;return szRs;&lt;br /&gt;}&lt;br /&gt;***********************************************************************&lt;br /&gt;* 函数： THCAR2Char&lt;br /&gt;* 描述：将TCHAR* 转换为 char*&lt;br /&gt;***********************************************************************&lt;br /&gt;char* THCAR2char(TCHAR* tchStr)&lt;br /&gt;{&lt;br /&gt;int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符，因此不用普通计算长度&lt;br /&gt;char* chRtn = new char[iLen+1]&lt;br /&gt;wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值&lt;br /&gt;return chRtn;&lt;br /&gt;}&lt;br /&gt;***********************************************************************&lt;br /&gt;* 函数： CString2char&lt;br /&gt;* 描述：将CString转换为 char*&lt;br /&gt;***********************************************************************&lt;br /&gt;char* CString2char(CString &amp;amp;str)&lt;br /&gt;{&lt;br /&gt;int len = str.GetLength();&lt;br /&gt;char* chRtn = (char*)malloc((len*2+1)*sizeof(char));//CString的长度中汉字算一个长度&lt;br /&gt;memset(chRtn, 0, 2*len+1);&lt;br /&gt;USES_CONVERSION;&lt;br /&gt;strcpy((LPSTR)chRtn,OLE2A(str.LockBuffer()));&lt;br /&gt;return chRtn;&lt;br /&gt;}&lt;br /&gt;***********************************************************************&lt;br /&gt;* 函 数 名：GetAnsiString&lt;br /&gt;* 描 述：将CString（unicode）转换为char*(ANSI)&lt;br /&gt;* 参 数：CString &amp;amp;s 要转换的CString&lt;br /&gt;* 返 回 值：返回转换结果&lt;br /&gt;***********************************************************************&lt;br /&gt;char* GetAnsiString(const CString &amp;amp;s)&lt;br /&gt;{&lt;br /&gt;int nSize = 2*s.GetLength();&lt;br /&gt;char *pAnsiString = new char[nSize+1];&lt;br /&gt;wcstombs(pAnsiString, s, nSize+1);&lt;br /&gt;return pAnsiString;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/***********************************************************************/&lt;br /&gt;/*string转wstring*/&lt;br /&gt;/***********************************************************************/&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;#include &amp;lt;locale.h&amp;gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;wstring str2wstr(const string &amp;amp;str)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setlocale(LC_ALL, "chs");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; const char* _Source = str.c_str();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; size_t _Dsize = str.size() + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wchar_t *_Dest = new wchar_t[_Dsize];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wmemset(_Dest, 0, _Dsize);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mbstowcs(_Dest,_Source,_Dsize);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wstring result = _Dest;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete []_Dest;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setlocale(LC_ALL, "C");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/***********************************************************************/&lt;br /&gt;/*wstring转string*/&lt;br /&gt;/***********************************************************************/&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;#include &amp;lt;locale.h&amp;gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;string wstr2str(const wstring &amp;amp;wstr)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setlocale(LC_ALL, "chs");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; const wchar_t* _Source = wstr.c_str();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; size_t _Dsize = 2 * wstr.size() + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *_Dest = new char[_Dsize];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(_Dest,0,_Dsize);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wcstombs(_Dest,_Source,_Dsize);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string result = _Dest;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete []_Dest;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; setlocale(LC_ALL, curLocale.c_str());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/***********************************************************************/&lt;br /&gt;/*string转wstring*/&lt;br /&gt;/***********************************************************************/&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;using namespace std;&lt;br /&gt;string char2str(char *arr,int count)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string result(arr,count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;br /&gt;} &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2262297.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/11/24/2262297.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/10/23/2222104.html</id><title type="text">在VS 2008下成功编译Chrome</title><summary type="text">源码之前了无秘密 - 侯捷的《STL源码分析》他这里的源码主要是指阅读源码，基于这个定义，个人将这句话稍作修改：“源码 + 调试”之前了无秘密。抱着研究的态度，今天用VC++ 2008编译了Chrome的源码（现在机器上的VC++版本只剩2008了），现将编译流程描述如下：1. 用TortoiseSVN下载最新的Chrome源码，假设下载到了目录“G:/Chrome/src/”下，以后的目录布局都基于这个假设2. 准备Chrome依赖的源码a) 无需下载的 编译时，Chrome依赖的第三方代码都应该在“G:/Chrome/src/src/third_party”，但是很奇怪，Chrome将六个</summary><published>2011-10-23T14:36:00Z</published><updated>2011-10-23T14:36:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/10/23/2222104.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/10/23/2222104.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;源码之前了无秘密&lt;span lang="EN-US"&gt; - &lt;/span&gt;侯捷的《&lt;span lang="EN-US"&gt;STL&lt;/span&gt;源码分析》&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;他这里的源码主要是指阅读源码，基于这个定义，个人将这句话稍作修改：&lt;span lang="EN-US"&gt;&amp;ldquo;&lt;/span&gt;源码&lt;span lang="EN-US"&gt; + &lt;/span&gt;调试&lt;span lang="EN-US"&gt;&amp;rdquo;&lt;/span&gt;之前了无秘密。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;抱着研究的态度，今天用&lt;span lang="EN-US"&gt;VC++ 2008&lt;/span&gt;编译了&lt;span lang="EN-US"&gt;Chrome&lt;/span&gt;的源码（现在机器上的&lt;span lang="EN-US"&gt;VC++&lt;/span&gt;版本只剩&lt;span lang="EN-US"&gt;2008&lt;/span&gt;了），现将编译流程描述如下：&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;1.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;用&lt;span lang="EN-US"&gt;TortoiseSVN&lt;/span&gt;下载最新的&lt;span lang="EN-US"&gt;Chrome&lt;/span&gt;源码，假设下载到了目录&lt;span lang="EN-US"&gt;&amp;ldquo;G:/Chrome/src/&amp;rdquo;&lt;/span&gt;下，以后的目录布局都基于这个假设&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;2.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;准备&lt;span lang="EN-US"&gt;Chrome&lt;/span&gt;依赖的源码&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p sizcache="1" sizset="32"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;a)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;" sizcache="1" sizset="32"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;无需下载的&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;编译时，&lt;span lang="EN-US"&gt;Chrome&lt;/span&gt;依赖的第三方代码都应该在&lt;span lang="EN-US"&gt;&amp;ldquo;G:/Chrome/src/src/third_party&amp;rdquo;&lt;/span&gt;，但是很奇怪，&lt;span lang="EN-US"&gt;Chrome&lt;/span&gt;将六个项目放在了&lt;span lang="EN-US"&gt;&amp;ldquo;G:/Chrome/src/deps/third_party&amp;rdquo;&lt;/span&gt;下。网上有同仁也提出了这个问题，他们的解决方法是将这六个项目&lt;span lang="EN-US"&gt;copy&lt;/span&gt;一份到&lt;span lang="EN-US"&gt;&amp;ldquo;G:/Chrome/src/src/third_party&amp;rdquo;&lt;/span&gt;，相当管用。但本人本着节约型社会，硬盘虽大，仍需节省利用的原则，使用了微软的官方工具&lt;span lang="EN-US"&gt;junction&lt;/span&gt;通过创建软链接解决了这个问题，所使用命令如下 （注意：命令是在目录&lt;span lang="EN-US"&gt;G:/Chrome/src/&lt;/span&gt;下执行）：&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp; junction src/third_party/icu38 G:/Chrome/src/deps/third_party/icu38&lt;br /&gt;&amp;nbsp;&amp;nbsp; junction src/third_party/cygwin G:/Chrome/src/deps/third_party/cygwin&lt;br /&gt;&amp;nbsp;&amp;nbsp; junction src/third_party/cygwin_src G:/Chrome/src/deps/third_party/cygwin_src&lt;br /&gt;&amp;nbsp;&amp;nbsp; junction src/third_party/python_24 G:/Chrome/src/deps/third_party/python_24&lt;br /&gt;&amp;nbsp;&amp;nbsp; junction src/third_party/WebKit G:/Chrome/src/deps/third_party/WebKit&lt;br /&gt;&amp;nbsp;&amp;nbsp; junction src/third_party/svn G:/Chrome/src/deps/third_party/svn&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; junction&lt;/span&gt;&lt;/span&gt;&lt;span face="宋体" sizcache="1" sizset="32" style="font-family: 宋体;"&gt;的下载地址是&lt;span lang="EN-US" sizcache="1" sizset="32"&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx"&gt;http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 54pt; text-indent: -18pt; text-align: left;" align="left" sizcache="1" sizset="33"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;b)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;需要重新下载的&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;还有五个项目需要重新下载，分别是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;open-vcdiff&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;gtest&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;googleurl&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;v8&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;，&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;breakpad&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;。&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;利用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;TortoiseSVN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;open-vcdiff&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;的地址是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;" sizcache="1" sizset="33"&gt;&lt;a href="http://src.chromium.org/svn/branches/official/build_154.9/src/sdch"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;http://src.chromium.org/svn/branches/official/build_154.9/src/sdch&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载到本地目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/branches/build_154.9/src/sdch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;利用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;TortoiseSVN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;gtest&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;的地址是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;" sizcache="1" sizset="34"&gt;&lt;a href="http://googletest.googlecode.com/svn/trunk"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;http://googletest.googlecode.com/svn/trunk&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载到本地目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/gtest/trunk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;利用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;TortoiseSVN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;googleurl&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;的地址是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;" sizcache="1" sizset="35"&gt;&lt;a href="http://google-url.googlecode.com/svn/trunk"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;http://google-url.googlecode.com/svn/trunk&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载到本地目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/google-url/src&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;利用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;TortoiseSVN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;v8&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;的地址是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;" sizcache="1" sizset="36"&gt;&lt;a href="http://v8.googlecode.com/svn/trunk"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;http://v8.googlecode.com/svn/trunk&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载到本地目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/v8/trunk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;利用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;TortoiseSVN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;breakpad&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;的地址是&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;" sizcache="1" sizset="37"&gt;&lt;a href="http://google-breakpad.googlecode.com/svn/trunk"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;http://google-breakpad.googlecode.com/svn/trunk&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下载到本地目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/google-breakpad/trunk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;创建软链接所使用命令如下：&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; junction src/sdch/open-vcdiff ../branches/build_154.9/src/sdch/open_vcdiff/depot/opensource/open-vcdiff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; junction src/testing/gtest ../gtest/trunk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; junction src/googleurl ../google-url/src&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; junction src/v8 ../v8/trunk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; junction src/breakpad/src ../google-breakpad/trunk/src&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt 54pt; text-indent: -18pt; text-align: left;" align="left"&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;c)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;编译&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;v8&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;项目&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;br /&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;用&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;VS 2008&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;打开和编译&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/v8/trunk/tools/visual_studio/v8.sln&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;，打开时会提示你转换项目，直接转换，没有问题，编译后顺利的话应该在目录&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;G:/Chrome/v8/trunk/tools/visual_studio/Debug/lib&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333; font-family: 宋体;"&gt;下生成&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span face="Calibri" style="font-family: Calibri;"&gt;v8.lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;3.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;修改&lt;span lang="EN-US"&gt;Chrome&lt;/span&gt;项目&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;a)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;修改&lt;span lang="EN-US"&gt;G:/Chrome/src/src/build/debug.vsprops&lt;/span&gt;，将&lt;/span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Tool&lt;br /&gt;&amp;nbsp;&amp;nbsp;Name="VCLinkerTool"&lt;br /&gt;&amp;nbsp;&amp;nbsp;LinkIncremental="2"&lt;br /&gt;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;修改成&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Tool&lt;br /&gt;&amp;nbsp;&amp;nbsp;Name="VCLinkerTool"&lt;br /&gt;&amp;nbsp;&amp;nbsp;LinkIncremental="2"&lt;br /&gt;&amp;nbsp;&amp;nbsp;AdditionalDependencies="$(SolutionDir)../v8/tools/visual_studio/Debug/lib/v8.lib"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;b)&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;打开&lt;span lang="EN-US"&gt;G:/Chrome/src/src/chrome/chrome.sln&lt;/span&gt;，将文件&lt;span lang="EN-US"&gt;G:/Chrome/src/src/testing/gtest/src/gtest-test-part.cc&lt;/span&gt;文件添加到项目&lt;span lang="EN-US"&gt;test/gtest&lt;/span&gt;中&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;4.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;开始编译吧&lt;span lang="EN-US"&gt; :)&lt;/span&gt;，喝杯开水，看看&lt;span lang="EN-US"&gt;paper&lt;/span&gt;，静候成功&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="EN-US" style="font-size: 9pt; color: #333333;"&gt;&lt;span&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;5.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal; x-system-font: none;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #333333;"&gt;&lt;span face="宋体" style="font-family: 宋体;"&gt;运行&lt;span lang="EN-US"&gt;G:/Chrome/src/src/chrome/Debug/chrome.exe&lt;/span&gt;看看编译的成果吧&lt;span lang="EN-US"&gt; :)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2222104.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/10/23/2222104.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/06/03/2072179.html</id><title type="text">QT + VS2008安装配置</title><summary type="text">编辑器加载中...QT4.7.2 + VS2008安装配置准备工作：1.VS20082.qt-vs-addin-1.1.8.exe（其他版本也可）3.qt-win-opensource-4.7.2-vs2008.exe安装过程：1.安装VS2008（可以选择默认路径）2.安装qt-win-opensource-4.7.2-vs2008.exe（我选择路径D:\Qt\4.7.2）3.安装qt-vs-addin-1.1.8.exe（不需要考虑QT,可以选择默认路径）4.配置QT环境变量，控制面板-&gt;系统-&gt;高级-&gt;环境变量，在“系统变量”这个组合框中，找到“Path”变量，在&amp;q</summary><published>2011-06-03T12:07:00Z</published><updated>2011-06-03T12:07:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/06/03/2072179.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/06/03/2072179.html"/><content type="html">编辑器加载中...QT4.7.2 + VS2008安装配置准备工作：1.VS20082.qt-vs-addin-1.1.8.exe（其他版本也可）3.qt-win-opensource-4.7.2-vs2008.exe安装过程：1.安装VS2008（可以选择默认路径）2.安装qt-win-opensource-4.7.2-vs2008.exe（我选择路径D:\Qt\4.7.2）3.安装qt-vs-addin-1.1.8.exe（不需要考虑QT,可以选择默认路径）4.配置QT环境变量，控制面板-&gt;系统-&gt;高级-&gt;环境变量，在“系统变量”这个组合框中，找到“Path”变量，在"Path"的最后面添加"D:\Qt\4.7.2\bin\"5.开始 -&gt; 程序 -&gt; Microsoft Visual Studio 2008 -&gt; Visual Studio Tools -&gt;Visual Studio 2008 命令提示6.在命令行中键入：            d: 回车            cd D:\Qt\4.7.2 回车            configure -platform win32-msvc2008 -debug-and-release            nmake7.配置qt-vs-addin，      把D:\Qt\4.7.2下的.qmake.cache和configure.cache这两个文件手动备份到另一个地方。然后输入指令:nmake confclean 指令完成后将会减少一些不再需要的文件。这个时候再把刚备份的.qmake.cache和configure.cache拷回原处。这时候最好把编译后的一堆东西打个包备个份，免得下次又要编译几个小时。8.打开VS2008,菜单栏会多出一个Qt选项,选择Qt选项下的Qt Options,在Qt Versions中添加路径，点击Add，选择路径D:\Qt\4.7.2，OK。9.打开VS2008,工具 -&gt; 选项 -&gt; 项目和解决方案  -&gt; VC++目录中     在“包含文件”中加入D:\Qt\4.7.2\include     在“库文件”中加入 D:\Qt\4.7.2\lib     在可执行文件中添加D:\Qt\4.7.2\bin visual assist设置打开visual assist设置面板，选择project- &gt;C/C++ Directories 将Platform选择为Custom，然后分别在stable include files 和src files中加入qt的include和src目录，重启VisualStudio.后续现在已经能够在VS2008中编译运行Qt4程序了，如果想自己在命令行中编译运行，需要运行Qt4的命令行控制台开始-》所有程序-》Qt by Nokia v4.7.2 (VS2008 OpenSource)-》Qt 4.7.2 Command Prompt这样会自动设置好Qt4和VC编译器的环境变量，不然编译会出现错误安装后，如果vs2008启动失败，则需要安装vs2008 sp1，试试&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2072179.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/06/03/2072179.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/05/29/2062111.html</id><title type="text">用于多媒体应用的无窗口ATL ActiveX控件</title><summary type="text">这个ATL activeX框架适用于作为Windows Media Player,Flash以及Sliverlight动画的承载容器。整个框架分布在Windowless文件夹下，共有6个文件。架构如图所示:使用Adobe Flash Player作为子控件主要代码如下：classCMainDlg:publicCAxWindowlessHost&lt;CMainDlg&gt;LRESULTCMainDlg::OnInitDialog(UINT/*uMsg*/,WPARAM/*wParam*/,LPARAM/*lParam*/,BOOL&amp;/*bHandled*/){//centerthed</summary><published>2011-05-29T07:06:00Z</published><updated>2011-05-29T07:06:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/05/29/2062111.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/05/29/2062111.html"/><content type="html">&amp;nbsp; 这个ATL activeX框架适用于作为Windows Media Player,Flash以及Sliverlight动画的承载容器。整个框架分布在Windowless文件夹下，共有6个文件。架构如图所示:&lt;p&gt;&lt;strong&gt;使用&lt;/strong&gt;&lt;strong&gt;Adobe Flash Player&lt;/strong&gt;&lt;strong&gt;作为子控件&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;主要代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;class&amp;nbsp;CMainDlg&amp;nbsp;:&amp;nbsp;public&amp;nbsp;CAxWindowlessHost&amp;lt;CMainDlg&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LRESULT&amp;nbsp;CMainDlg::OnInitDialog(UINT&amp;nbsp;/*uMsg*/,&amp;nbsp;WPARAM&amp;nbsp;/*wParam*/,&amp;nbsp;LPARAM&amp;nbsp;/*lParam*/,&amp;nbsp;BOOL&amp;amp;&amp;nbsp;/*bHandled*/)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;center&amp;nbsp;the&amp;nbsp;dialog&amp;nbsp;on&amp;nbsp;the&amp;nbsp;screen&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CenterWindow();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;set&amp;nbsp;icons&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON&amp;nbsp;hIcon&amp;nbsp;=&amp;nbsp;(HICON)::LoadImage(_Module.GetResourceInstance(),&amp;nbsp;MAKEINTRESOURCE(IDR_MAINFRAME),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE_ICON,&amp;nbsp;::GetSystemMetrics(SM_CXICON),&amp;nbsp;::GetSystemMetrics(SM_CYICON),&amp;nbsp;LR_DEFAULTCOLOR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetIcon(hIcon,&amp;nbsp;TRUE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON&amp;nbsp;hIconSmall&amp;nbsp;=&amp;nbsp;(HICON)::LoadImage(_Module.GetResourceInstance(),&amp;nbsp;MAKEINTRESOURCE(IDR_MAINFRAME),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE_ICON,&amp;nbsp;::GetSystemMetrics(SM_CXSMICON),&amp;nbsp;::GetSystemMetrics(SM_CYSMICON),&amp;nbsp;LR_DEFAULTCOLOR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetIcon(hIconSmall,&amp;nbsp;FALSE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TCHAR&amp;nbsp;szPath[MAX_PATH]&amp;nbsp;=&amp;nbsp;{&amp;nbsp;0&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;::GetModuleFileName(NULL,&amp;nbsp;szPath,&amp;nbsp;MAX_PATH)&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{//定位.swf文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPTSTR&amp;nbsp;pszSep&amp;nbsp;=&amp;nbsp;_tcsrchr(szPath,&amp;nbsp;TCHAR('\\'));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pszSep++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*pszSep&amp;nbsp;=&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::StringCchCat(szPath,&amp;nbsp;MAX_PATH,&amp;nbsp;_T("Construction.swf"));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Initialize&amp;nbsp;Flash&amp;nbsp;Player&amp;nbsp;(Shockwave&amp;nbsp;.swf)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HRESULT&amp;nbsp;hr;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ActiveXSite*&amp;nbsp;pSite;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite&amp;nbsp;=&amp;nbsp;CAxWindowlessHost&amp;lt;CMainDlg&amp;gt;::GetControlSite(IDC_SHOCKWAVEFLASH);//获取flash&amp;nbsp;player子控件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;pSite&amp;nbsp;!=&amp;nbsp;NULL&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CComQIPtr&amp;lt;IShockwaveFlash&amp;gt;&amp;nbsp;spFlash&amp;nbsp;=&amp;nbsp;pSite-&amp;gt;ActiveXControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hr&amp;nbsp;=&amp;nbsp;spFlash-&amp;gt;put_WMode(&amp;nbsp;CComBSTR("Transparent")&amp;nbsp;);//设置&amp;ldquo;透明&amp;rdquo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hr&amp;nbsp;=&amp;nbsp;spFlash-&amp;gt;put_Movie(&amp;nbsp;CComBSTR(szPath)&amp;nbsp;);//设置影片源文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;TRUE;&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;&lt;strong&gt;使用&lt;/strong&gt;&lt;strong&gt;Windows Meida Player&lt;/strong&gt;&lt;strong&gt;作为子控件&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;主要代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;LRESULT&amp;nbsp;CMainDlg::OnInitDialog(UINT&amp;nbsp;/*uMsg*/,&amp;nbsp;WPARAM&amp;nbsp;/*wParam*/,&amp;nbsp;LPARAM&amp;nbsp;/*lParam*/,&amp;nbsp;BOOL&amp;amp;&amp;nbsp;/*bHandled*/)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;center&amp;nbsp;the&amp;nbsp;dialog&amp;nbsp;on&amp;nbsp;the&amp;nbsp;screen&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CenterWindow();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;set&amp;nbsp;icons&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON&amp;nbsp;hIcon&amp;nbsp;=&amp;nbsp;(HICON)::LoadImage(_Module.GetResourceInstance(),&amp;nbsp;MAKEINTRESOURCE(IDR_MAINFRAME),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE_ICON,&amp;nbsp;::GetSystemMetrics(SM_CXICON),&amp;nbsp;::GetSystemMetrics(SM_CYICON),&amp;nbsp;LR_DEFAULTCOLOR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetIcon(hIcon,&amp;nbsp;TRUE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON&amp;nbsp;hIconSmall&amp;nbsp;=&amp;nbsp;(HICON)::LoadImage(_Module.GetResourceInstance(),&amp;nbsp;MAKEINTRESOURCE(IDR_MAINFRAME),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE_ICON,&amp;nbsp;::GetSystemMetrics(SM_CXSMICON),&amp;nbsp;::GetSystemMetrics(SM_CYSMICON),&amp;nbsp;LR_DEFAULTCOLOR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetIcon(hIconSmall,&amp;nbsp;FALSE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Initialize&amp;nbsp;Windows&amp;nbsp;Media&amp;nbsp;Player&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HRESULT&amp;nbsp;hr;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ActiveXSite*&amp;nbsp;pSite;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite&amp;nbsp;=&amp;nbsp;CAxWindowlessHost&amp;lt;CMainDlg&amp;gt;::GetControlSite(IDC_WMP11);//获取Meida&amp;nbsp;Player子控件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;pSite&amp;nbsp;!=&amp;nbsp;NULL&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite-&amp;gt;SetAllowResize(false);//不允许自动调整大小&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CComQIPtr&amp;lt;IWMPCore&amp;gt;&amp;nbsp;wmp&amp;nbsp;=&amp;nbsp;pSite-&amp;gt;ActiveXControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CComQIPtr&amp;lt;IWMPPlayer4&amp;gt;&amp;nbsp;wmp4&amp;nbsp;=&amp;nbsp;pSite-&amp;gt;ActiveXControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;this&amp;nbsp;can&amp;nbsp;be&amp;nbsp;done&amp;nbsp;manually&amp;nbsp;as&amp;nbsp;well&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;wmp4&amp;nbsp;)&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hr&amp;nbsp;=&amp;nbsp;wmp4-&amp;gt;put_windowlessVideo(&amp;nbsp;VARIANT_TRUE&amp;nbsp;);//无窗口模式&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//hr&amp;nbsp;=&amp;nbsp;wmp4-&amp;gt;put_uiMode(&amp;nbsp;CComBSTR("Full")&amp;nbsp;);//填充模式&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//hr&amp;nbsp;=&amp;nbsp;wmp-&amp;gt;put_URL(&amp;nbsp;CComBSTR("c:\\temp\\videofile.wmv")&amp;nbsp;);//多媒体文件地址&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;LRESULT&amp;nbsp;CMainDlg::OnBnClickedBtnBrowse(WORD&amp;nbsp;/*wNotifyCode*/,&amp;nbsp;WORD&amp;nbsp;/*wID*/,&amp;nbsp;HWND&amp;nbsp;/*hWndCtl*/,&amp;nbsp;BOOL&amp;amp;&amp;nbsp;/*bHandled*/)&lt;br /&gt;{//选择多媒体文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;LPCTSTR&amp;nbsp;pszFilter&amp;nbsp;=&amp;nbsp;_T("Video&amp;nbsp;Files&amp;nbsp;(*.avi;*.mpg;*.wmv)\0*.avi;*.mpg;*.wmv\0\0");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFileDialog&amp;nbsp;fileOpen(TRUE,&amp;nbsp;_T("avi"),&amp;nbsp;NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OFN_HIDEREADONLY&amp;nbsp;|&amp;nbsp;OFN_OVERWRITEPROMPT,&amp;nbsp;pszFilter/*,&amp;nbsp;m_hWnd*/);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;IDOK&amp;nbsp;==&amp;nbsp;fileOpen.DoModal()&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ActiveXSite*&amp;nbsp;pSite;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite&amp;nbsp;=&amp;nbsp;CAxWindowlessHost&amp;lt;CMainDlg&amp;gt;::GetControlSite(IDC_WMP11);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetDlgItemText(IDC_TXT_FILENAME,&amp;nbsp;&amp;nbsp;fileOpen.m_szFileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CComQIPtr&amp;lt;IWMPPlayer4&amp;gt;&amp;nbsp;wmp4&amp;nbsp;=&amp;nbsp;pSite-&amp;gt;ActiveXControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wmp4-&amp;gt;close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wmp4-&amp;gt;put_URL(&amp;nbsp;CComBSTR(&amp;nbsp;fileOpen.m_szFileName&amp;nbsp;)&amp;nbsp;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;0;&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;strong&gt;使用&lt;/strong&gt;&lt;strong&gt;Sliverlight&lt;/strong&gt;&lt;strong&gt;作为子控件&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;主要代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;LRESULT&amp;nbsp;CMainDlg::OnInitDialog(UINT&amp;nbsp;/*uMsg*/,&amp;nbsp;WPARAM&amp;nbsp;/*wParam*/,&amp;nbsp;LPARAM&amp;nbsp;/*lParam*/,&amp;nbsp;BOOL&amp;amp;&amp;nbsp;/*bHandled*/)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;center&amp;nbsp;the&amp;nbsp;dialog&amp;nbsp;on&amp;nbsp;the&amp;nbsp;screen&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CenterWindow();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;set&amp;nbsp;icons&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON&amp;nbsp;hIcon&amp;nbsp;=&amp;nbsp;(HICON)::LoadImage(_Module.GetResourceInstance(),&amp;nbsp;MAKEINTRESOURCE(IDR_MAINFRAME),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE_ICON,&amp;nbsp;::GetSystemMetrics(SM_CXICON),&amp;nbsp;::GetSystemMetrics(SM_CYICON),&amp;nbsp;LR_DEFAULTCOLOR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetIcon(hIcon,&amp;nbsp;TRUE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HICON&amp;nbsp;hIconSmall&amp;nbsp;=&amp;nbsp;(HICON)::LoadImage(_Module.GetResourceInstance(),&amp;nbsp;MAKEINTRESOURCE(IDR_MAINFRAME),&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE_ICON,&amp;nbsp;::GetSystemMetrics(SM_CXSMICON),&amp;nbsp;::GetSystemMetrics(SM_CYSMICON),&amp;nbsp;LR_DEFAULTCOLOR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetIcon(hIconSmall,&amp;nbsp;FALSE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Initialize&amp;nbsp;Silverlight&amp;nbsp;Control&amp;nbsp;(this&amp;nbsp;is&amp;nbsp;not&amp;nbsp;windowless&amp;nbsp;but&amp;nbsp;cool&amp;nbsp;anyway)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HRESULT&amp;nbsp;hr;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ActiveXSite*&amp;nbsp;pSite;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite&amp;nbsp;=&amp;nbsp;CAxWindowlessHost&amp;lt;CMainDlg&amp;gt;::GetControlSite(IDC_AGCONTROL1);//获取SliverLight子控件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(&amp;nbsp;pSite&amp;nbsp;!=&amp;nbsp;NULL&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;disable&amp;nbsp;right-click!&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite-&amp;gt;SetAllowRClick(false);//禁止掉右键&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;load&amp;nbsp;from&amp;nbsp;URL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//CComBSTR&amp;nbsp;bstrUrl("file:///c:\\temp\\SortTheFootbars.xap");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CComBSTR&amp;nbsp;bstrUrl("http://www.andybeaulieu.com/silverlight/2.0/sortthefoobars/ClientBin/SortTheFoobars.xap");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pSite-&amp;gt;SetUrl(bstrUrl);//设置多媒体源文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CComQIPtr&amp;lt;IXcpControl2&amp;gt;&amp;nbsp;slight&amp;nbsp;=&amp;nbsp;pSite-&amp;gt;ActiveXControl();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hr&amp;nbsp;=&amp;nbsp;slight-&amp;gt;put_Source(bstrUrl);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;TRUE;&lt;br /&gt;}&lt;/div&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2062111.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/05/29/2062111.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/05/10/2041781.html</id><title type="text">Visual Assist X最新破解版</title><summary type="text">Visual Assist X最新破解版下载 VA X破解 va_x下载 assist.x破解2009-03-16 12:24************重要通知(2011年03月13日)*************************此次发布的最新版为：Visual.Assist.X 10.6.1845版，大蕃茄官网下载地址：http://s.click.taobao.com/t_8?e=7HZ5x%2BOzd%2BXW54VJqh4tqA%2B%2FtnE%3D&amp;p=mm_17161796_0_0http://www.wholetomato.com/support/history.a</summary><published>2011-05-10T00:34:00Z</published><updated>2011-05-10T00:34:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/05/10/2041781.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/05/10/2041781.html"/><content type="html">&lt;div class="tit"&gt;Visual Assist X最新破解版下载 VA X破解 va_x下载 assist.x破解&lt;/div&gt;&lt;div class="date"&gt;2009-03-16 12:24&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 18px;"&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 18px;"&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2011年03月13日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;此次发布的最新版为：Visual.Assist.X 10.6.1845版，大蕃茄官网下载地址：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&lt;a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzd%2BXW54VJqh4tqA%2B%2FtnE%3D&amp;amp;p=mm_17161796_0_0"&gt;http://s.click.taobao.com/t_8?e=7HZ5x%2BOzd%2BXW54VJqh4tqA%2B%2FtnE%3D&amp;amp;p=mm_17161796_0_0&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.wholetomato.com/support/history.asp#1845" target="_blank"&gt;http://www.wholetomato.com/support/history.asp#1845&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;破解地址:&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&lt;a href="http://s.click.taobao.com/t_8?e=7HZ5x%2BOzd%2BXW54VJqh4tqA%2B%2FtnE%3D&amp;amp;p=mm_17161796_0_0"&gt;http://s.click.taobao.com/t_8?e=7HZ5x%2BOzd%2BXW54VJqh4tqA%2B%2FtnE%3D&amp;amp;p=mm_17161796_0_0&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;a href="http://download.csdn.net/source/3184124" target="_blank"&gt;http://download.csdn.net/source/3184124&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: normal; color: #660000;"&gt;【老样子，不用分，不要钱】&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;VS2010的用户请注意：（如果破解时提示2010 version is not found）&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;WinXP下：&lt;br /&gt;C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist X\10.6.18XX&lt;br /&gt;&lt;br /&gt;Win7下：&lt;br /&gt;C:\Users\[用户名]\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist X\10.6.18XX&lt;br /&gt;&lt;br /&gt;然后复制VA_X.dll到安装目录中替换对应文件进行破解。&lt;br /&gt;&lt;br /&gt;(1).安装完va，没有在vs2010看到va插件，是因为需要在vs2010的&lt;br /&gt;Tools--&amp;gt;Options--&amp;gt;Environment--&amp;gt;Extension Manager--&amp;gt;"Load per user extensions when running as administrator"&lt;br /&gt;选上这个，否则不起作用&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2011年01月13日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;此次发布的最新版为：Visual.Assist.X 10.6.1840版，大蕃茄官网下载地址：&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&lt;a style="color: #666666; font-size: 14px; font-family: Verdana,Arial,Helvetica,sans-serif; font-weight: normal; text-decoration: underline; line-height: normal;" href="http://www.wholetomato.com/support/history.asp#1840"&gt;http://www.wholetomato.com/support/history.asp#1840&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 18px;"&gt;&lt;strong&gt;&lt;strong&gt;破解地址:&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="line-height: normal; color: #660000;"&gt;&lt;a style="color: #666666; font-size: 14px; font-family: Verdana,Arial,Helvetica,sans-serif; font-weight: normal; text-decoration: none; line-height: normal;" href="http://download.csdn.net/source/3015760"&gt;http://download.csdn.net/source/3015760&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;【老样子，不用分，不要钱】&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2010年11月19日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #660000;"&gt;此次发布的最新版为：Visual.Assist.X 10.6.1837版，大蕃茄官网下载地址：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #660000;"&gt;&lt;a href="http://www.wholetomato.com/binaries/VA_X_Setup1837.exe"&gt;http://www.wholetomato.com/binaries/VA_X_Setup1837.exe&lt;/a&gt;&lt;br /&gt;破解地址:&lt;a href="http://download.csdn.net/source/2904440"&gt;http://download.csdn.net/source/2904440&lt;/a&gt;&lt;/span&gt;&lt;span style="color: #660000;"&gt;【老样子，不用分，不要钱】&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2010年9月28日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #660000;"&gt;此次发布的最新版为：Visual.Assist.X 10.6.1833版，大蕃茄官网下载地址：&lt;a href="http://www.wholetomato.com/downloads/getBuild.asp?1833" target="_blank"&gt;http://www.wholetomato.com/downloads/getBuild.asp?1833&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;破解地址:&lt;/span&gt;&lt;a href="http://download.csdn.net/source/2846910"&gt;http://download.csdn.net/source/2846910&lt;/a&gt;&lt;span style="color: #660000;"&gt;【不用分，不要钱】&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;★重要提醒★&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;1833这个版 本我用了几天，发现常常会无缘无故的不起作用(我用的VS2005)晕死，如果你也有这种情况，请返回到1830版本，这个版本是我现在体验过的最流氓的 版本再过段时间，最新的visual assist x 10.6.1837版CRACK应该会出来，我会在第一时间内更新地址：）&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2010年9月6 日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #660000;"&gt;此次发布的最新版为：Visual.Assist.X 10.6.1830版，大蕃茄官网下载地址：&lt;a href="http://www.wholetomato.com/binaries/VA_X_Setup1830.exe" target="_blank"&gt;http://www.wholetomato.com/binaries/VA_X_Setup1830.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;破解地址：&lt;a href="http://download.csdn.net/source/2669531" target="_blank"&gt;http://download.csdn.net/source/2669531&lt;/a&gt;【不用分，不要钱】&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2010年6月18 日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 16px;"&gt;&lt;span style="color: #ff0000;"&gt;va x 10.6.1819&lt;/span&gt; crack for vs2008 and vs2010下载地址：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; font-size: 16px;"&gt;&lt;strong&gt;&lt;a href="http://download.csdn.net/source/2273901" target="_blank"&gt;http://download.csdn.net/source/2273901&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 18px;"&gt;&lt;strong&gt;************重要通知(2009年10月18日)*************************&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; font-size: 16px;"&gt;&lt;strong&gt;VA最新版&lt;span style="color: #ff0000;"&gt;Visual Assist X 10.5.1738&lt;/span&gt;（就是十月一日官方发布的版本）完美破解版已经更新，请大家下载：&lt;a href="http://download.csdn.net/source/1746898" target="_blank"&gt;download.csdn.net/source/1746898&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;本破解版的优点：程序采用番茄官方程序，可以直接到whole tomato官网下载&lt;br /&gt;破解采用内存偏移技术，使用简单。和以往的patch.exe最大的不同是：使用本破解软件时，你的杀软不会再乱叫啦~~~~&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; font-size: 16px;"&gt;&lt;strong&gt;本人试用本版后，体会到VA开发者的用心良苦，很多以前的BUG都在用户反应下做了修改，尤其在显示注释、代码着色、自动提示这些方面以趋向完美。现在的VA_X +VS开发组合已经处于无敌了&lt;img src="http://img.baidu.com/hi/jx/j_0003.gif" alt="" /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; font-size: 16px;"&gt;&lt;strong&gt;试试便知，无任何毒副作用，请大家放心使用&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff; font-size: 16px;"&gt;&lt;strong&gt;********************************************************************************************&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;我想用过VC/vs的人，不知道这个软件。那岂不很痛苦。&lt;/p&gt;&lt;p&gt;先说个我用的版本吧,应该比较新了。不过这个鸟软件更新太快，而且网上很多破解版的技术，唉。无语。网上地址又是一堆，要钱的，要注册的。。。，下面提供10.4.1624下载地址如下&lt;/p&gt;&lt;p&gt;&lt;a href="http://download.csdn.net/source/1002150" target="_blank"&gt;http://download.csdn.net/source/1002150&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;以前用的版本，不知道怎么回事，在2008里面经常不做任何提示，而且把编译器自带的提示都屏蔽掉了。用起很不爽。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2041781.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/05/10/2041781.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/04/24/2026169.html</id><title type="text">临界区，互斥量，信号量，事件的区别（线程同步）</title><summary type="text">四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码，速度快，适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生，从而启动后继任务的开始。 临界区（Critical Section）保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区，那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起，并一直持续到进入临界区的线程离开。临界区在被释放后，其他线程可以继续抢占，</summary><published>2011-04-24T04:48:00Z</published><updated>2011-04-24T04:48:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/04/24/2026169.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/04/24/2026169.html"/><content type="html">&lt;span style="font-family: 宋体;" face="宋体"&gt;四种进程或线程同步互斥的控制方法&lt;br /&gt;1、临界区:通过对多线程的串行化来访问公共资源或一段代码，速度快，适合控制数据访问。 &lt;br /&gt;2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 &lt;br /&gt;3、信号量:为控制一个具有有限数量用户资源而设计。 &lt;br /&gt;4、事 件:用来通知线程有一些事件已发生，从而启动后继任务的开始。 &lt;br /&gt;&lt;br /&gt;临界区（Critical Section）&lt;br /&gt;保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区，那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起，并一直持续到进入临界区的线程离开。临界区在被释放后，其他线程可以继续抢占，并以此达到用原子方式操作共享资源的目的。 &lt;br /&gt;&lt;br /&gt;互斥量（Mutex） &lt;br /&gt;互斥量跟临界区很相似，只有拥有互斥对象的线程才具有访问资源的权限，由于互斥对象只有一个，因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出，以便其他线程在获得后得以访问资源。互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享，而且可以在不同应用程序的线程之间实现对资源的安全共享。 &lt;br /&gt;互斥量与临界区的作用非常相似，但互斥量是可以命名的，也就是说它可以跨越进程使用。所以创建互斥量需要的资源更多，所以如果只为了在进程内部是用的话使用临界区会带来速度上的优势并能够减少资源占用量。&lt;br /&gt;&lt;br /&gt;信号量（Semaphores）&lt;br /&gt;信号量对象对线程的同步方式与前面几种方法不同，信号允许多个线程同时使用共享资源，这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。它允许多个线程在同一时刻访问同一资源，但是需要限制在同一时刻访问此资源的最大线程数目。一般是将当前可用资源计数设置为最大资源计数，每增加一个线程对共享资源的访问，当前可用资源计数就会减1，只要当前可用资源计数是大于0的，就可以发出信号量信号。但是当前可用计数减小到0时则说明当前占用资源的线程数已经达到了所允许的最大数目，不能在允许其他线程的进入，此时的信号量信号将无法发出。&lt;br /&gt;&lt;br /&gt;事件（Event） &lt;br /&gt;事件对象也可以通过通知操作的方式来保持线程的同步。并且可以实现不同进程中的线程同步操作。 &lt;br /&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/2026169.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/04/24/2026169.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuweijian/archive/2011/03/20/1989270.html</id><title type="text">GuiToolKit的编译</title><summary type="text">最近做一个系统时，苦于界面比较难看，如果自己从头做起的话，过于烦琐，便驱猫上网，寻找合适的界面库，找了多个，发现了一个比较合适的界面库GuiLib（官方网址：），这个界面库号称终身免费，可以用于商业软件，故而应用起来，不用担心版权问题。而其他的几个界面库，多半是要求付费的，虽然做得比较好，但毕竟MONEY是个问题。 到GuiLib上下载了他的最新版之后，首先便是编译链接的问题。考虑到软件的国际通用性，便选择了UNICODE方式进行编译，结果出现了20多个错误，主要集中在下面三个方面： 1、缺少头文件 提示信息：visualstylesxp.h(6) : fatal error C1083: .</summary><published>2011-03-20T02:42:00Z</published><updated>2011-03-20T02:42:00Z</updated><author><name>surfer</name><uri>http://www.cnblogs.com/liuweijian/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuweijian/archive/2011/03/20/1989270.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuweijian/archive/2011/03/20/1989270.html"/><content type="html">&lt;span style="font-size: small;" size="3"&gt;  最近做一个系统时，苦于界面比较难看，如果自己从头做起的话，过于烦琐，便驱猫上网，寻找合适的界面库，找了多个，发现了一个比较合适的界面库GuiLib（官方网址：），这个界面库号称终身免费，可以用于商业软件，故而应用起来，不用担心版权问题。而其他的几个界面库，多半是要求付费的，虽然做得比较好，但毕竟MONEY是个问题。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  到GuiLib上下载了他的最新版之后，首先便是编译链接的问题。考虑到软件的国际通用性，便选择了UNICODE方式进行编译，结果出现了20多个错误，主要集中在下面三个方面：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  1、缺少头文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  提示信息：visualstylesxp.h(6) : fatal error C1083: Cannot open include file: 'uxtheme.h': No such file or directory。提示Uxtheme.h 和Tmschema.h找不到，而Schemadef.h是在Tmschema.h里调用的，所以我们还需要另外三个文件，这在VC6里面没有，包含在Windows PlatformSDK安转了Visual Studio 2003或 Visual Studio 2005 中都有PlatformSDK。你若安装过，就不必费尽去下载385.0 MB的SDK了，默认安装的话三个文件都在C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include&lt;br /&gt;（Uxtheme.h 中定义了在向控件添加外观风格的步骤中以及在相应的代码示例中所引用的 UxTheme API；Tmschema.h 中定义了各个类。听说要将WINVER,_WIN32_WINNT, _WIN32_WINDOWS定义为0x0501(支持XP)才能编译通过。）这三个文件在下面的地址有下载：&lt;br /&gt;http://files.cnblogs.com/xcvm/Uxtheme.h.rar&lt;br /&gt;复制三个文件到 GuiLib 目录下,把&lt;br /&gt;#include &amp;lt;uxtheme.h&amp;gt;&lt;br /&gt;#include &amp;lt;tmschema.h&amp;gt;&lt;br /&gt;改为&lt;br /&gt;#include "uxtheme.h"&lt;br /&gt;#include "tmschema.h"&lt;br /&gt;就可以正常编译了。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  Windows? Server 2003 SP1 Platform SDK下载地址：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  Windows? Server 2003 SP1 Platform SDK ISO Install（单个镜像文件）&lt;br /&gt;http://download.microsoft.com/download/7/5/e/75ec7f04-4c8c-4f38-b582-966e76602643/5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img&lt;br /&gt;Windows? Server 2003 SP1 Platform SDK Full Download（多个压缩包）&lt;br /&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=eba0128f-a770-45f1-86f3-7ab010b398a3&amp;amp;DisplayLang=en#filelistFile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  2、ADO错误&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  在&amp;ldquo;GuiADODB.h &amp;rdquo;文件中，没有定义&amp;ldquo;msado15.dll&amp;rdquo;文件的具体位置，可根据你系统的安装情况，更改为正确的位置即可。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  3、字符串错误&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  这个是最主要的错误，大部分是因为使用UNICODE项进行编译时出现的。原作者在设计时，没有使用兼容MBCS/UNICODE的方式，故而需要进行更改，具体可参阅下面的文章。http://vckbase.com/document/viewdoc/?id=1733&lt;/span&gt;&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;官网:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.beyondata.com/" href="http://www.beyondata.com/"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;http://www.beyondata.com/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;GUIToolkit&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.codeproject.com/KB/library/guitoolkit.aspx?display=PrintAll&amp;amp;fid=4311&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;fr=251" href="http://www.codeproject.com/KB/library/guitoolkit.aspx?display=PrintAll&amp;amp;fid=4311&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;fr=251"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;http://www.codeproject.com/KB/library/guitoolkit.aspx?display=PrintAll&amp;amp;fid=4311&amp;amp;df=90&amp;amp;mpp=25&amp;amp;noise=3&amp;amp;sort=Position&amp;amp;view=Quick&amp;amp;fr=251&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/library/guitoolkit/demoprojects.zip"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;Download demo project - 403 Kb&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/library/guitoolkit/sourcecode.zip"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;Download full source code- 806 Kb&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a title="http://www.shengfang.org/blog/p/20080804GUITOOLKITstaticlib.php" href="http://www.shengfang.org/blog/p/20080804GUITOOLKITstaticlib.php"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;http://www.shengfang.org/blog/p/20080804GUITOOLKITstaticlib.php&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.shengfang.org/blog/p/20080804vcinterface.php" href="http://www.shengfang.org/blog/p/20080804vcinterface.php"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;http://www.shengfang.org/blog/p/20080804vcinterface.php&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;上面网址总结了很多东西.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.liuzhongshu.com/code/guitoolkit.html"&gt;&lt;span style="color: #0066a7;" color="#0066a7"&gt;GuiToolkit&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;GuiToolkit, MFC界面扩展库, 个人作品, 非常棒的类库, 完全free.&lt;br /&gt;官方网站是 &lt;/span&gt;&lt;a href="http://www.beyondata.com/default.htm"&gt;&lt;span style="color: #0066a7; font-size: small;" size="3" color="#0066a7"&gt;http://www.beyondata.com/default.htm&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: small;" size="3"&gt;从预编译的二进制例子来看, GuiToolKit已经实现了一个完整而复杂界面的解决方案, 接近于很多商业的库, 如BCGControlBar. 可惜由于个人作品的关系, 几乎没有文档和技术支持(如果有的话, 岂非太完美了).&lt;br /&gt;从得到的完整的源码来看, 在VC6下编译稍需修改一下,&lt;br /&gt;1)头文件需要在VC中被检索到, 所以在VC Option中增加GuitoolKit/SourceCode/Personal/ExtLib/Header&lt;br /&gt;2)原有的工程依赖关系不对,全部去掉即可.&lt;br /&gt;3)import语句#import "Program FilesCommon FilesSystemADOmsado15.dll" 缺少驱动器符指示&lt;br /&gt;4)在GuiFramWnd.h中包含的系统文件AFXIMPL.H路径不对, 将之从系统的MFC/SRC目录拷贝的ExtLib/Header即可.&lt;br /&gt;基本上这样处理后,就可以正确编译大部分的例子代码了.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;上篇文章文不对题的写了些废话，今天就言归正传。因为现在一直在进行&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;MFC&lt;/span&gt;程序的编写，所以就具体说一下在&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;VC6.0&lt;/span&gt;下使用第三方界面库的过程和感受。&lt;/p&gt;&lt;p&gt;目前，第三方界面库的种类很多，我从网上查了下，大致有&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Xtrme toolkit&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;BCGControlBar&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;SkinMagic&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;AppFace&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Skin++&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Uskin++&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;SYGUI&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;LibUIDK&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GardenUI&lt;/span&gt;等等，除了后两种一个是开源，一个是免费的外，其余的都是收费的。&lt;/p&gt;&lt;p&gt;这其中的界面库，&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Xtrme toolkit&lt;/span&gt;是实验室一直在使用的库，这个库是非常有名的集专业和美观于一体的界面库，功能非常强大，可以说是一款重量级的界面库。但是在强大的背后，也有很多烦恼，该库中几乎所有的类都继承于&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;MFC&lt;/span&gt;原有的基类，在原有特性的基础上增添了许多新的特性，但是当在程序中不需要这些特性的时候，如果对该库不熟悉或是对&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;MFC&lt;/span&gt;程序的编写不是很熟悉的话，就会吃很多苦头，而且还会增加程序的臃肿性。毕竟在使用第三方库的时候，我们都是希望越简单方便越好，不用在这上面花很多精力，把精力都集中在算法的实现上。因此，该库的使用对于新手或是对&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;MFC&lt;/span&gt;界面编写不是很熟悉的人来说，可能会是一件不那么容易的事情。&lt;/p&gt;&lt;p&gt;在我改造界面的过程中，考虑到该平台的界面不需要那么多的特性，只需要美观、可用性好一些就可以，再加上实验室的很多平台都是用&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Xtrme toolkit&lt;/span&gt;编写的，几乎看起来都是一样的脸。所以基于以上的原因，我开始寻找其它的相对轻量级又不失美观的库。于是我找到了比较合适的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;是一款比较实用的开源界面库，它提供&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;WindowsXP&lt;/span&gt;样式的显示界面，相比&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Xtrme toolkit&lt;/span&gt;，我觉得该库是一款轻量级的界面库。对界面要求不是非常高，但又追求美观效果的，可以考虑使用该库。由于该库是开源的，自己可以根据需要增加需要的特性，也可以删减不需要的特性，但是说句实话，这也不是一件很容易的事情。因此对于需要方便使用的人来说，可以从该库提供的例子中来找到自己需要的模板样子，然后修改成自己希望的样子。这样子的话，对只希望简单使用该库的人来说，就变得方便快捷许多。&lt;/p&gt;&lt;p&gt;下面就介绍下如何将&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;添加到自己的工程当中。&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;1&lt;/span&gt;、下载到&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;之后，将&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiLib&lt;/span&gt;工程编译，分别生成&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;release&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;debug&lt;/span&gt;版本的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;dll&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;lib&lt;/span&gt;文件。&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Release&lt;/span&gt;版本的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;dll&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;lib&lt;/span&gt;：&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiTk115.dll GuiTk115.lib&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Debug&lt;/span&gt;版本的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;dll&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;lib&lt;/span&gt;：&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiTk115d.dll GuiTk115d.lib&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;2&lt;/span&gt;、将&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiTk115.dll GuiTk115d.dll&lt;/span&gt;分别拷贝到工程的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Release&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Debug&lt;/span&gt;版的生成可执行文件的文件夹下。&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;3&lt;/span&gt;、将&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiTk115.lib&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiTk115d.lib&lt;/span&gt;拷贝到自己工程的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;lib&lt;/span&gt;文件夹下，然后分别通过&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;VC6.0&lt;/span&gt;的选项&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Project-&amp;gt;Settings-&amp;gt;link&lt;/span&gt;添加到工程当中，并在&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Iuput&lt;/span&gt;选项下，设定好&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;lib&lt;/span&gt;的文件路径。&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;4&lt;/span&gt;、将&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Guilib&lt;/span&gt;的头文件拷贝到自己工程的&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Include&lt;/span&gt;文件夹中。&lt;/p&gt;&lt;p&gt;当然，也可以通过&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;VC6.0&lt;/span&gt;的选项&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Tools-&amp;gt;Options-&amp;gt;Directories&lt;/span&gt;设定&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Include&lt;/span&gt;和&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;lib&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;经过以上的步骤以后，自己的工程编译应该就没问题了。一开始，我还是建议用&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;提供的例子来进行编译，成功以后，自己就可以根据需要，参考例子，编写自己的界面了。希望该文对第一次使用&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;GuiToolkit&lt;/span&gt;的朋友有所帮助。&lt;/p&gt;﻿&lt;img src="http://www.cnblogs.com/liuweijian/aggbug/1989270.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuweijian/archive/2011/03/20/1989270.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
