﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-面对现实，超越自己-随笔分类-工具</title><link>http://www.cppblog.com/wanghaiguang/category/20410.html</link><description>逆水行舟，不进则退</description><language>zh-cn</language><lastBuildDate>Sat, 11 Jan 2014 20:56:57 GMT</lastBuildDate><pubDate>Sat, 11 Jan 2014 20:56:57 GMT</pubDate><ttl>60</ttl><item><title>C#代码反编译 得到项目可运行源码 经验分享(附：批量修改文件名工具)（转载</title><link>http://www.cppblog.com/wanghaiguang/archive/2013/10/23/203886.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Wed, 23 Oct 2013 02:23:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2013/10/23/203886.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/203886.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2013/10/23/203886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/203886.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/203886.html</trackback:ping><description><![CDATA[<p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp; &nbsp; 谈到"<font color="#78afd3">C#代码反编译</font>"，大家可能都会想到&nbsp;<font color="#78afd3">Reflector代码反编译</font>工具，对其应该也不会太陌生；做C#开发，它算得上是一个不可或缺的实用工具。通过它我们可以很方便的查看一个程序集的源代码(这是其最基本的使用，也是大家常用的)，还可以方便<font color="#78afd3">破解软件</font>...,而我这篇文章要跟大家分享的是：用Reflector将C#的开发的软件[项目](此文中所说的是winForm项目，对于.net项目可以借鉴或参考)的项目代码还原&#8212;&#8212;反编译得到可运行项目源码。 我所做的<font color="#78afd3">反编译</font>，并不是'破解'，其使用的前提或情况是：公司原来请人开发的'<font color="#78afd3">配餐软件</font>(幼儿园版)'，现有客户咨询想买，并且软件中存在一些问题需改，&#8212;&#8212;不是本人开发的，该软件也无源码，想修改只能想办法得到软件的源码。具体的'破解'方法记录在下，方便自己以后查看！(ps: '破解'的方法，自己之前就摸索过。但困于反编译之后的error比较多，没有耐心，有的问题感觉比较离奇，试了几次不行就放弃了&nbsp; &#8212;&#8212;这就间接的说明：真正的黑客，应该都是比较有耐心的,呵呵..., 但做软件开发，又何尝不需要这样？！)</p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;&nbsp;&nbsp;&nbsp; a.使用到的工具：Reflector，具体的说是：<font color="#78afd3">Reflector插件File disassembler</font>(具体是什么和how to use，直接上网查)。</p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;&nbsp;&nbsp;&nbsp; b. 打开Reflector，选择要'破解'的软件(.exe)主程序，再选择并点击 如图:<img src="http://www.cppblog.com/images/cppblog_com/wanghaiguang/fanbianyi1.gif" width="355" height="225" alt="" />, 在右侧出现的 程序集(输出)类型选择界面 选择类型'windows Appliction' (因为是winForm应用程序，如果是选择的其它 如'class ...'类库,则需要在之后的步骤中，改变项目属性中的 输出类型，不建议这样操作)，如图：<img src="http://www.cppblog.com/images/cppblog_com/wanghaiguang/fanbianyi2.gif" width="1132" height="194" alt="" /></p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;点击 生成 即可 得到此主程序集的源码，其它的相关程序集再如此操作即可！ &#8212;&#8212;不要以为大功告成，这只是第一步，麻烦的在后面！</p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;&nbsp;&nbsp; c.将生成的源码 在Vs中打开(项目), 先试着运行下，(一般)会报错，排除'xxx程序集不存在'这类的错误，我所遇到的如下：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">using</span>&nbsp;System;<br /><span style="color: #0000FF; ">using</span>&nbsp;System.Collections.Generic;<br /><span style="color: #0000FF; ">using</span>&nbsp;System.Runtime.CompilerServices;<br /><span style="color: #0000FF; ">using</span>&nbsp;System.Runtime.InteropServices;<br /><br />[CompilerGenerated]<br />internalclass&lt;PrivateImplementationDetails&gt;{1FF4F699-35E0-4117-BDBC-9E44A1B0F9F5}<br />{<br />internalstatic&nbsp;Dictionary&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;$$method0x600012e-1;<br />internalstatic&nbsp;Dictionary&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;$$method0x6000137-1;<br />internalstatic&nbsp;Dictionary&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;$$method0x6000137-2;<br />internalstatic&nbsp;Dictionary&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;$$method0x600014a-1;<br />internalstatic&nbsp;Dictionary&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;$$method0x6000169-1;<br />internalstatic&nbsp;Dictionary&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;$$method0x60001b6-1;<br />internalstatic&nbsp;__StaticArrayInitTypeSize=20&nbsp;$$method0x6000213-1;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;data&nbsp;size:&nbsp;20&nbsp;bytes</span><span style="color: #008000; "><br /></span>internalstatic&nbsp;__StaticArrayInitTypeSize=20&nbsp;$$method0x6000213-2;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;data&nbsp;size:&nbsp;20&nbsp;bytes</span><span style="color: #008000; "><br /></span>internalstatic&nbsp;__StaticArrayInitTypeSize=20&nbsp;$$method0x6000213-3;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;data&nbsp;size:&nbsp;20&nbsp;bytes</span><span style="color: #008000; "><br /></span>internalstatic&nbsp;__StaticArrayInitTypeSize=20&nbsp;$$method0x6000213-4;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;data&nbsp;size:&nbsp;20&nbsp;bytes</span><span style="color: #008000; "><br /></span><br />[StructLayout(LayoutKind.Explicit,&nbsp;Size=20,&nbsp;Pack=1)]<br />privatestruct&nbsp;__StaticArrayInitTypeSize=20<br />{<br />}<br />}</div></p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;源码文件中会出现一个 _PrivateImplementationDetails_{1FF4F699-35E0-4117-BDBC-9E44A1B0F9F5}.cs 文件名很长 内容如上的 乱码类，对此解决办法时：注释此类 或直接删除。【程序相关的文件，如图片、数据库等要记得放到项目关联位置，一般在bin/debug/文件夹下】</p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;&nbsp;&nbsp; d. 添加相关程序集的引用，设置启动对象。到这儿，差不多程序就可以 跑起来了，但是还没有完 &#8212;&#8212;因为 反编译后的代码，文件夹的位置和界面与资源引用之间的关联，基本上都乱了.所以现在要解决的关键问题是：恢复文件间的关联和引用(其它的问题，通过调试就差不多可以解决)。如图:</p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;"><img src="http://www.cppblog.com/images/cppblog_com/wanghaiguang/fanbianyi3.gif" width="323" height="666" alt="" />窗体的.cs和.resx（资源）文件不在同一个文件夹中，对应窗体的.resx文件都加上了项目或解决方案名前缀(zhiyiSystem.) &#8212;&#8212;This is point!&nbsp; 这就是我们要解决问题的关键：恢复窗体的.cs和.resx文件间的关联，操作大致有以下两步：<strong>1.将窗体的.cs和.resx文件放在同一个文件中&#8212;&#8212;即同一目录。2.去掉窗体的.resx文件的前缀 &#8212;&#8212;即修改文件名，如果是一个个文件去修改，窗体比较多的话，是一件非常重复而无聊的事，于是 就上网找 "批量修改文件名"的工具，下载了一两个感觉都不好用，找不到，只能自己搞了，再说这东西简单，说白了就是 遍历文件夹中文件并'重命名'(代码就不贴出了，文章后 附有 自己写的 "批量修改文件名"工具)。</strong></p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 到此，程序就可以真正跑起来了。别看我写出来，似乎'<font color="#78afd3">破解</font><a href="http://www.cnblogs.com/know/" style="color: #78afd3;">'</a>就是一会儿的事，但我做的时候，却几经折腾 好几次都感觉"算了，又卡住了...",有些或大或小问题，在这里因为时间的原因 及有些步骤一时半会也想不起来了，但主要的方法应该都没有落下，如果有不明白的朋友，可以留言交流，再做解答；也希望在'破解'方法有经验的，能多提些意见，分享下你的&#8216;破解&#8217;经验！</p><p style="font-family: 'black Verdana', Arial, Helvetica, sans-serif; background-color: #ffffff; margin-top: 10px !important; margin-bottom: 10px !important;">&nbsp;&nbsp;&nbsp;&nbsp; 后附:<br />&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000; font-size: 18pt;"><strong><a title="批量修改文件名工具.rar" href="/Files/wanghaiguang/批量修改文件名工具.rar" style="color: #ff0000;">批量修改文件名工具.rar</a></strong></span><br /><br />本文转自：<a href="http://www.cnblogs.com/know/archive/2011/03/15/1985026.html" style="font-family: verdana, 'courier new';">http://www.cnblogs.com/know/archive/2011/03/15/1985026.html<br />相关</a>连接：<a href="http://www.cnblogs.com/verygis/archive/2008/12/02/1346072.html" style="font-family: verdana, 'courier new';">http://www.cnblogs.com/verygis/archive/2008/12/02/1346072.html</a></p><img src ="http://www.cppblog.com/wanghaiguang/aggbug/203886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2013-10-23 10:23 <a href="http://www.cppblog.com/wanghaiguang/archive/2013/10/23/203886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ocx和DLL文件打包成cab文件，IE浏览器在线安装</title><link>http://www.cppblog.com/wanghaiguang/archive/2013/09/05/203013.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Thu, 05 Sep 2013 02:05:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2013/09/05/203013.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/203013.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2013/09/05/203013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/203013.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/203013.html</trackback:ping><description><![CDATA[<br /><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">我们打开淘宝等网站时，IE浏览器会提示安装空间，这个控件便是用于对用户名密码进行加密的ActiveX控件。如何在我们的站点上安装如此控件，让用户可以通过简单的点击便可方便使用我们的空间呢？</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">下面是如何让在你的站点上安装控件的方法。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong></strong></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"></p><hr style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;" /><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">&nbsp;<strong>基础知识</strong></p><h2>html语言中Object标签</h2><h3>定义和用法</h3><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数，以及可用来显示和操作数据的代码。&lt;object&gt; 标签用于包含对象，比如图像、音频、视频、Java applets、ActiveX、PDF 以及 Flash。object 的初衷是取代 img 和 applet 元素。不过由于漏洞以及缺乏浏览器支持，这一点并未实现。浏览器的对象支持有赖于对象类型。不幸的是，主流浏览器都使用不同的代码来加载相同的对象类型。而幸运的是，object 对象提供了解决方案。如果未显示 object 元素，就会执行位于 &lt;object&gt; 和 &lt;/object&gt; 之间的代码。通过这种方式，我们能够嵌套多个 object 元素（每个对应一个浏览器）。</p><h3>实例</h3><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">向HTML中添加对象：<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">object&nbsp;</span><span style="color: #FF0000; ">classid</span><span style="color: #0000FF; ">="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"</span><span style="color: #FF0000; ">&nbsp;id</span><span style="color: #0000FF; ">="Slider1"</span><span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #FF0000; ">width</span><span style="color: #0000FF; ">="100"</span><span style="color: #FF0000; ">&nbsp;height</span><span style="color: #0000FF; ">="50"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="BorderStyle"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="MousePointer"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="0"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="Enabled"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="Min"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="0"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="Max"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="10"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">8</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">object</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;</span></div><p>&nbsp;</p><p><strong style="color: #333333; font-family: Arial; line-height: 26px;">参考</strong></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"><a href="http://www.w3school.com.cn/tags/tag_object.asp" style="color: #336699; text-decoration: none;">http://www.w3school.com.cn/tags/tag_object.asp</a></p><h2>Windows中注册类ID：clsid</h2><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">&#8220;通用唯一标识符&#8221;(UUID)，用于标识 COM 组件。每个 COM 组件在 Windows 注册表中都有自己的 CLSID，以便让其他应用程序加载。</p><h3>ActiveX控件CLSID的获取</h3><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">在编译完成每一个ActiveX控件之后，系统会生成ocx.html文件，其中是调用该ActiveX控件的方法。该页面中有一个标签即为Object，其中有一行则记录着该ocx文件的CLSID，如下：<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">object&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #800000; ">&nbsp;</span><span style="color: #FF0000; ">ID</span><span style="color: #0000FF; ">="TopoSceneViewer"</span><span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #FF0000; ">&nbsp;WIDTH</span><span style="color: #0000FF; ">=800&nbsp;&nbsp;<br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #0000FF; ">&nbsp;</span><span style="color: #FF0000; ">HEIGHT</span><span style="color: #0000FF; ">=600&nbsp;&nbsp;<br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #0000FF; ">&nbsp;</span><span style="color: #FF0000; ">CLASSID</span><span style="color: #0000FF; ">="CLSID:321B84C8-3745-4AC9-BF04-55753F40CE63"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">object</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">&nbsp;</span></div><p>&nbsp;</p><h1><hr /></h1><h1>创建cab文件</h1><pre style="white-space: pre-wrap; word-wrap: break-word; color: #333333; line-height: 26px; background-color: #ffffff;">cab文件中需要包含一系列文件，其中.inf文件会告诉IE如何去安装这些文件。我们从.inf文件开始</pre><h2>怎么写inf</h2><pre style="white-space: pre-wrap; word-wrap: break-word; color: #333333; line-height: 26px; background-color: #ffffff;">INF文件的组成有节(Sections)，键(Key)和值(value)三部分。&nbsp;<br />关键节有&nbsp;<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">[Version]版本描述信息，主要用于版本控制。&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">[Strings]字符串信息，用于常量定义。&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">[DestinationDirs]定义系统路径信息。&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; ">[SourceDisksNames]指明源盘信息。&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; ">[SourceDisksNames]指明源盘文件名。&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">[DefaultInstall]开始执行安装。</span></div></pre><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">其它的节可以自定义</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">最开始一般是[Version]区：&nbsp;<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">[Version]&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">signature</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$XXXX$</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">AdvancedINF</span><span style="color: #000000; ">=</span><span style="color: #800000; ">2.0</span><span style="color: #000000; ">&nbsp;&nbsp;</span></div><p>&nbsp;</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">"Signature"项定义了该INF文件需要运行在何种操作系统版本中。有$Windows NT$, $Chicago$, or $Windows 95$三个值供选择，一般选择$Chicago$即可。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">接下来就是最重要的[Add.Code]区：&nbsp;<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">[Add</span><span style="color: #000000; ">.</span><span style="color: #000000; ">Code]&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">Ctrl1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">dll</span><span style="color: #000000; ">=</span><span style="color: #000000; ">C1Section&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">Ctrl2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">dll</span><span style="color: #000000; ">=</span><span style="color: #000000; ">Ctrl2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">dll &nbsp;</span></div><p><span style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">前面是要下载的文件名，后面是对应这个文件的区域名，可以是任何名字，不过一般都是和文件的名字相同，这样方便维护。</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">还有需要注意是在[Add.Code]区出现的文件要根据依赖性进行排序，例如前面说的ctrl1.dll要依赖于ctrl2.dll，则ctrl2.dll要出现在ctrl1.dll的前面。因为安装时是按照相反的顺序进行的，也就是说先安装ctrl2.dll，然后才是ctrl1.dll，哧哧，记清楚了，不要搞反了。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">再接下来是各个文件的区域了&nbsp;<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">[Ctrl1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">dll]&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">file</span><span style="color: #000000; ">-</span><span style="color: #000000; ">win32</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x86</span><span style="color: #000000; ">=</span><span style="color: #000000; ">thiscab&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">RegisterServer</span><span style="color: #000000; ">=</span><span style="color: #000000; ">yes&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; ">clsid</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">..</span><span style="color: #000000; ">}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; ">DestDir</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">FileVersion</span><span style="color: #000000; ">=</span><span style="color: #800000; ">1</span><span style="color: #000000; ">,</span><span style="color: #800000; ">0</span><span style="color: #000000; ">,</span><span style="color: #800000; ">0</span><span style="color: #000000; ">,</span><span style="color: #800000; ">0</span><span style="color: #000000; ">&nbsp; &nbsp;</span></div><p><span style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">[Ctrl1.dll]区域中的第一个file值告诉ie到哪里去得到这个dll，file一共包括三个部分，第一部分是file，这个永远都是这样的（至少目前来说）；第二部分告诉声明支持的OS，win32表示windows，mac就是苹果MAC OX了；第三部分是CPU类型，比如说x86、 ppc (Power PC)、 mips或者alpha了。</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">file的值可以取三个一个URL、ignore和thiscab，如果是URL则说明到URL所在的位置去下；如果是ignore说明对于这种OS和CPU，不需要下载这个文件(ctrl1.dll)；如果是thiscab很明显就在当前的cab文件中了。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">接下来是RegisterServer，可以取两个值yes和no，如果为yes则说明ie要注册该dll，如果是no就不必了。+如果这里选yes，则需要指定clsid，否则clsid一行可以省略。+</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">再下来是DestDir，它的值是dll将要存到本地硬盘的位置，如果它的值是10，则将dll放到/Windows或者/WinNT下；如果是11，则放到/Windows/System或者/WinNT/System32下；如果是空（就是没有值）则会放到/Windows或者/WinNT下的Downloaded Program Files目录下；</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">最后是FileVersion，这个就比较明显了，说明了ctrl1.dll的版本号。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">其他部分详见参考文献。</p><h2>创建cab文件</h2><ol style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"><li>如果需要创建cab文件，首先需要Cabarc或者Makecab，它们随着Cabinet SDK的安装就有了，Cabinet SDK的下载地址是<a href="http://msdn.microsoft.com/workshop/management/cab/cabdl.asp" style="color: #336699; text-decoration: none;">http://msdn.microsoft.com/workshop/management/cab/cabdl.asp</a></li><li>Cabarc可以创建、查看或者解出cab里面的文件，而Makecab则只可以用来创建cab文件。</li><li>制作cab文件时需要将所有的相关文件都包含进去，可以通过Depends（VC自带的）检查需要的文件。使用inf文件将这些东西都写进去。</li><li>inf搞法：inf文件描述cab中所有的ocx及dll文件，inf通过一些命名区域来提供需要的信息。<br /><pre style="white-space: pre-wrap; word-wrap: break-word;"><div bg_c-sharp"="" style="width: 647.453125px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">cabarc&nbsp;&nbsp;N&nbsp;&nbsp;ctrl1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">cab&nbsp;&nbsp;ctrl1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">inf&nbsp;&nbsp;ctrl1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">dll&nbsp;&nbsp;</span></div></div></pre>N表示要创建一个新的文件，ctrl1.cab是创建的文件名，ctrl1.inf是cab的inf，后而是需要加到cab里的文件，可以使用通配符。&nbsp;<br />然后就可以将cab文件放到网页上了</li></ol><h2>参考</h2><ol style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"><li>如何编写INF：<a href="http://www.cnblogs.com/sbdx/archive/2006/12/14/whatisinffile.html" style="color: #336699; text-decoration: none;">http://www.cnblogs.com/sbdx/archive/2006/12/14/whatisinffile.html</a></li><li>如何写cab相关的INF：<a href="http://docs.google.com/Doc?docid=0Aehzv88zbfy_ZGdncGdqczZfMjIxZHNnZDhtYzg&amp;hl=zh_CN" style="color: #336699; text-decoration: none;">http://docs.google.com/Doc?docid=0Aehzv88zbfy_ZGdncGdqczZfMjIxZHNnZDhtYzg&amp;hl=zh_CN</a><strong></strong></li></ol><hr style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;" /><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong>签名</strong></p><h2>申请证书</h2><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">要使用到makecert工具，在VS2005目录下搜索可以搜索到。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">在命令提示行中执行</p><pre style="white-space: pre-wrap; word-wrap: break-word; color: #333333; line-height: 26px; background-color: #ffffff;"><div bg_c-sharp"="" style="width: 687.046875px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">makecert&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sk&nbsp;myNewKey&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">r&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">n&nbsp;</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">CN=发证机关的名字,OU=Certification,O=公司名字,E=name@email.com</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ss&nbsp;</span><span style="color: #0000FF; ">my</span><span style="color: #000000; ">&nbsp;myNew</span><span style="color: #000000; ">.</span><span style="color: #000000;">cer&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">cert2spc&nbsp;myNew</span><span style="color: #000000; ">.</span><span style="color: #000000; ">cer&nbsp;myNew</span><span style="color: #000000; ">.</span><span style="color: #000000; ">spc&nbsp;&nbsp;</span></div></div></pre><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">makecert具体使用帮助可参考创建证书的工具（makecert.exe）</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"><strong>签名</strong></p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">要使用到signtool工具，也可以在VS2005目录下找到。</p><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">signtool工具有多种使用模式，下面使用的是带UI的向导模式。<br />在命令提示行中执行</p><pre style="white-space: pre-wrap; word-wrap: break-word; color: #333333; line-height: 26px; background-color: #ffffff;"><div bg_c-sharp"="" style="width: 687.046875px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">signtool&nbsp;&nbsp;signwizard&nbsp;&nbsp;</span></div></div></pre><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">之后进入signcodewizard:</p><pre style="white-space: pre-wrap; word-wrap: break-word; color: #333333; line-height: 26px; background-color: #ffffff;"><div bg_c-sharp"="" style="width: 687.046875px;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #000000; ">step1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">选择要签名的cab文件&nbsp;&nbsp;<br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">step2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">自定义&nbsp;&nbsp;<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">step3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">从文件中选择&nbsp;myNew</span><span style="color: #000000; ">.</span><span style="color: #000000; ">spc&nbsp;&nbsp;<br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; ">step4</span><span style="color: #000000; ">.</span><span style="color: #000000; ">csp中的私钥</span><span style="color: #000000; ">/</span><span style="color: #000000; ">密钥容器：myNewKey&nbsp;&nbsp;<br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; ">step5</span><span style="color: #000000; ">.</span><span style="color: #000000; ">sha1&nbsp;&nbsp;<br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">step6</span><span style="color: #000000; ">.</span><span style="color: #0000FF; ">next</span><span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">7</span>&nbsp;<span style="color: #000000; ">step7</span><span style="color: #000000; ">.</span><span style="color: #000000; ">描述：插件名称</span><span style="color: #000000; ">/</span><span style="color: #000000; ">web</span><span style="color: #000000; ">:</span><span style="color: #000000; ">www</span><span style="color: #000000; ">.</span><span style="color: #000000; ">yourcompany</span><span style="color: #000000; ">.</span><span style="color: #000000; ">com&nbsp;&nbsp;<br /></span><span style="color: #008080; ">8</span>&nbsp;<span style="color: #000000; ">step8</span><span style="color: #000000; ">.</span><span style="color: #000000; ">http</span><span style="color: #000000; ">://</span><span style="color: #000000; ">timestamp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">verisign</span><span style="color: #000000; ">.</span><span style="color: #000000; ">com</span><span style="color: #000000; ">/</span><span style="color: #000000; ">scripts</span><span style="color: #000000; ">/</span><span style="color: #000000; ">timstamp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">dll</span></div></div></pre><p style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;">signtool 的具体使用帮助可参考签名工具 (SignTool.exe)<br /><br />本文转自：<a href="http://blog.csdn.net/wangjingfei/article/details/5417028" style="font-family: verdana, 'courier new'; line-height: 21px;">http://blog.csdn.net/wangjingfei/article/details/5417028<br />其他</a>链接：<a href="http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html" style="font-family: verdana, 'courier new'; line-height: 21px;">http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html</a></p><img src ="http://www.cppblog.com/wanghaiguang/aggbug/203013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2013-09-05 10:05 <a href="http://www.cppblog.com/wanghaiguang/archive/2013/09/05/203013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打印纸质书本地址</title><link>http://www.cppblog.com/wanghaiguang/archive/2013/01/06/197004.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Sun, 06 Jan 2013 02:22:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2013/01/06/197004.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/197004.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2013/01/06/197004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/197004.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/197004.html</trackback:ping><description><![CDATA[<div><span style="font-family: Verdana; font-size: 12pt;">淘宝地址：http://item.taobao.com/item.htm?id=15567575512</span></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/197004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2013-01-06 10:22 <a href="http://www.cppblog.com/wanghaiguang/archive/2013/01/06/197004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>png转换bmp工具</title><link>http://www.cppblog.com/wanghaiguang/archive/2012/11/19/195371.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Mon, 19 Nov 2012 09:24:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2012/11/19/195371.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/195371.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2012/11/19/195371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/195371.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/195371.html</trackback:ping><description><![CDATA[@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div><span style="font-family: Verdana;">PNG2BMP.EXE 可以将png图片转换成bmp图片。</span><br />
<br />
<a title="下载地址" href="/Files/wanghaiguang/PNG2BMP.zip"><span style="font-family: Verdana;">下载地址</span><br />
</a><br />
<span style="font-family: Verdana;">示例：PNG2BMP.EXE -X C:\\1.PNG -O 1.bmp -D c:\\</span><br />
<span style="font-family: Verdana;"><br />
</span><span style="font-family: Verdana;">命令参数如下：</span><br />
<br />
<span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">png2bmp,&nbsp;a&nbsp;PNG</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">-</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">to</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">-</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">BMP&nbsp;converter&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">-</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">&nbsp;version&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">1.62</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">&nbsp;(Sep&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">4</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">,&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">2005</span><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">)</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;Copyright&nbsp;(C)&nbsp;1999-2005&nbsp;MIYASAKA&nbsp;Masaru</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;Compiled&nbsp;with&nbsp;libpng&nbsp;1.2.8&nbsp;and&nbsp;zlib&nbsp;1.2.3.</span><br />
<br />
<span style="font-family: Verdana;">Usage:&nbsp;png2bmp.exe&nbsp;[-switches]&nbsp;inputfile(s)&nbsp;</span><img src="http://www.cppblog.com/Images/dot.gif" alt="" /><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;or:&nbsp;</span><img src="http://www.cppblog.com/Images/dot.gif" alt="" /><span style="font-family: Verdana;">&nbsp;|&nbsp;png2bmp.exe&nbsp;[-switches]&nbsp;|&nbsp;</span><img src="http://www.cppblog.com/Images/dot.gif" alt="" /><br />
<br />
<span style="font-family: Verdana;">List&nbsp;of&nbsp;input&nbsp;files&nbsp;may&nbsp;use&nbsp;wildcards&nbsp;(*&nbsp;and&nbsp;?)</span><br />
<span style="font-family: Verdana;">Output&nbsp;filename&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">is</span><span style="font-family: Verdana;">&nbsp;same&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">as</span><span style="font-family: Verdana;">&nbsp;input&nbsp;filename,&nbsp;but&nbsp;extension&nbsp;.bmp</span><br />
<br />
<span style="font-family: Verdana;">Switches&nbsp;(</span><span style="color: #0000ff; font-family: Verdana;">case</span><span style="font-family: Verdana;">-insensitive)&nbsp;:</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Preserve&nbsp;alpha&nbsp;channel&nbsp;(save&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">in</span><span style="font-family: Verdana;">&nbsp;32bit&nbsp;ARGB&nbsp;BMP&nbsp;format)</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Preserve&nbsp;alpha&nbsp;channel&nbsp;(save&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">in</span><span style="font-family: Verdana;">&nbsp;32bit&nbsp;Bitfield&nbsp;BMP&nbsp;format)</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert&nbsp;transparent&nbsp;color&nbsp;to&nbsp;alpha&nbsp;channel&nbsp;(use&nbsp;with&nbsp;-A&nbsp;or&nbsp;-B)</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-O&nbsp;name&nbsp;&nbsp;Specify&nbsp;name&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;output&nbsp;file</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-D&nbsp;dir&nbsp;&nbsp;&nbsp;Output&nbsp;files&nbsp;into&nbsp;dir</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete&nbsp;input&nbsp;files&nbsp;after&nbsp;successful&nbsp;conversion</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;the&nbsp;timestamp&nbsp;of&nbsp;input&nbsp;file&nbsp;on&nbsp;output&nbsp;file</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-Q&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quiet&nbsp;mode</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-L&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log&nbsp;errors&nbsp;to&nbsp;.\P2BERROR.LOG&nbsp;file</span><br />
<span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;-X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disable&nbsp;conversion&nbsp;through&nbsp;standard&nbsp;input/output</span></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/195371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2012-11-19 17:24 <a href="http://www.cppblog.com/wanghaiguang/archive/2012/11/19/195371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gsoap工具生成代码</title><link>http://www.cppblog.com/wanghaiguang/archive/2012/11/16/195276.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Fri, 16 Nov 2012 09:14:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2012/11/16/195276.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/195276.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2012/11/16/195276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/195276.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/195276.html</trackback:ping><description><![CDATA[<p style="margin: 0px 0px 14px; background-color: #ffffff; "></p><div style="text-align: left;"><span style="font-size: 12pt; font-family: Verdana;">1.</span><span style="font-size: 12pt; font-family: Verdana;">介绍</span></div><p>&nbsp;</p><p style="margin: 0px 0px 14px; font-family: Arial; background-color: #ffffff; "><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;gSOAP</span><span style="font-size: 12pt; font-family: Verdana;">编译工具提供了一个SOAP/XML&nbsp;关于C/C++&nbsp;语言的实现，从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构，这样就使得用户必须改变程序结构来适应相关的类库。与之相反，gSOAP利用编译器技术提供了一组透明化的SOAP API，并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。gSOAP的编译器能够自动的将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构，反之亦然。这样，只用一组简单的API就将用户从SOAP细节实现工作中解脱了出来，可以专注与应用程序逻辑的实现工作了。gSOAP编译器可以集成C/C++和Fortran代码（通过一个Fortran到C的接口），嵌入式系统，其他SOAP程序提供的实时软件的资源和信息；可以跨越多个操作系统，语言环境以及在防火墙后的不同组织。</span></p><p style="margin: 0px 0px 14px; font-family: Arial; background-color: #ffffff; ">&nbsp;</p><p style="margin: 0px 0px 14px; font-family: Arial; background-color: #ffffff; "><span style="font-size: 12pt; font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;gSOAP</span><span style="font-size: 12pt; font-family: Verdana;">使编写web服务的工作最小化了。gSOAP编译器生成SOAP的代码来序列化或反序列化C/C++的数据结构。gSOAP包含一个WSDL生成器，用它来为你的web服务生成web服务的解释。gSOAP的解释器及导入器可以使用户不需要分析web服务的细节就可以实现一个客户端或服务端程序。下面是gSOAP的一些特点：</span></p><p style="margin: 0px 0px 14px; font-family: Arial; background-color: #ffffff; ">&nbsp;</p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP</span><span style="font-size: 12pt; font-family: Verdana;">编译器可以根据用户定义的C和C++数据结构自动生成符合SOAP的实例化代码。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP</span><span style="font-size: 12pt; font-family: Verdana;">支持WSDL 1.1, SOAP 1.1, SOAP 1.2, SOAP RPC&nbsp;编码方式以及&nbsp;literal/document&nbsp;方式.</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP</span><span style="font-size: 12pt; font-family: Verdana;">是少数完全支持SOAP1.1 RPC编码功能的工具包，包括多维数组及动态类型。比如，一个包含一个基类参数的远程方法可以接收客户端传来的子类实例。子类实例通过动态绑定技术来保持一致性。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;MIME (SwA)&nbsp;和&nbsp;DIME&nbsp;附件包。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP</span><span style="font-size: 12pt; font-family: Verdana;">是唯一支持DIME附件传输的工具包。它允许你在保证XML可用性的同时能够以最快的方式（流方式）传递近乎无大小限制的二进制数据。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;SOAP-over-UDP。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;IPv4 and IPv6.</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;Zlib deflate and gzip compression (for HTTP, TCP/IP, and XML file storage)。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;SSL (HTTPS)。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;HTTP/1.0, HTTP/1.1&nbsp;保持连接,&nbsp;分块传输及基本验证。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">支持&nbsp;SOAP&nbsp;单向消息。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">包含一个&nbsp;WSDL&nbsp;生成器，便于web服务的发布。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">gSOAP&nbsp;</span><span style="font-size: 12pt; font-family: Verdana;">包含一个WSDL解析器&nbsp;(将WSDL转换为gSOAP头文件)，可以自动化用户客户端及服务端的开发。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">生成可以单独运行的web服务及客户端程序。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">因为只需要很少内存空间，所以可以运行在类似Palm OS, Symbian, Pocket PC的小型设备中。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">适用于以C或C++开发的web服务中。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">跨平台：Windows, Unix, Linux, Mac OS X, Pocket PC, Palm OS, Symbian等。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">支持序列化程序中的本地化C/C++数据结构。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">可以使用输入和输出缓冲区来提高效率，但是不用完全消息缓冲来确定HTTP消息的长度。取而代之的是一个三相序列化方法。这样，像64位编码的图像就可以在小内存设备（如PDA）中以DIME附件或其他方式传输。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">支持C++单继承，动态绑定，重载，指针结构（列表、树、图、循环图，定长数组，动态数组，枚举，64位2进制编码及16进制编码）。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">不需要重写现有的C/C++应用。但是，不能用unions，指针和空指针来作为远程方法调用参数的数据结构中元素。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">三相编组：1）分析指针，引用，循环数据结构；2）确定HTTP消息长度；3）将数据序列化位SOAP1.1编码方式或用户定义的数据编码方式。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">双相编组：1）SOAP解释及编码；2）分解&#8220;forward&#8221;指针（例如：分解SOAP中的href属性）。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">完整可定制的SOAP错误处理机制。</span></p><p style="margin: 0px 0px 14px 21pt; font-family: Arial; background-color: #ffffff; text-indent: -21pt; "><span style="font-size: 12pt; font-family: Verdana;">l<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt; font-family: Verdana;">可定制的SOAP消息头处理机制，可以用来保持状态信息</span></p><span style="color: #333333; line-height: 26px; text-align: left; background-color: #ffffff; font-size: 12pt; font-family: Verdana;">gsoap通常带有两个工具： wsdl2h 和 soapcpp2。 wsdl2h主要是用来生成头文件的，而soapcpp2主要是利用wsdl2h生成的头文件来生成C文件或C++文件。</span>&nbsp;<br /><br /><span style="font-size: 12pt; font-family: Verdana;">以下是README.txt中示例：<br /></span><br /><div><span style="font-size: 12pt; font-family: Verdana;">Example translation of WSDL to code in two steps:</span></div><div><span style="white-space:pre">	</span><span style="font-size: 12pt; font-family: Verdana;">$ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl</span></div><div><span style="white-space:pre">	</span><span style="font-size: 12pt; font-family: Verdana;">$ soapcpp2 calc.h</span><br /><br /><div><span style="font-size: 12pt; font-family: Verdana;">Windows下命令行运行：</span><br /><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp; &nbsp; &nbsp; &nbsp;wsdl2h.exe -o TestServices.h http://192.168.20.242/ClientUpdateWebService.asmx?WSDL</span><br /><span style="font-size: 12pt; font-family: Verdana;">&nbsp; &nbsp; &nbsp; &nbsp;soapcpp2&nbsp;TestServices.h&nbsp;</span><br /><br /><br /><span style="font-size: 12pt; font-family: Verdana;">出现如下错误：Critical error: #import: Cannot open file "stlvector.h" for reading.</span><span style="line-height: 19px; text-align: left; background-color: #fefef2; font-size: 12pt; font-family: Verdana;">你需要在gsoap\import下把这个文件拷贝过来。</span><span style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 13px; line-height: 19px; text-align: left; background-color: #fefef2; "><br /><br /></span><div class="lemma-main-content" style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">&nbsp;<strong style="font-family: Verdana;">wsdl2h</strong></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Verdana;">**&nbsp;&nbsp;The&nbsp;gSOAP&nbsp;WSDL/Schema&nbsp;processor&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;C&nbsp;and&nbsp;C++,&nbsp;wsdl2h&nbsp;release&nbsp;2.8.5</span><br /><span style="font-family: Verdana;">**&nbsp;&nbsp;Copyright&nbsp;(C)&nbsp;2000-2011&nbsp;Robert&nbsp;van&nbsp;Engelen,&nbsp;Genivia&nbsp;Inc.</span><br /><span style="font-family: Verdana;">**&nbsp;&nbsp;All&nbsp;Rights&nbsp;Reserved.&nbsp;This&nbsp;product&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">is</span><span style="font-family: Verdana;">&nbsp;provided&nbsp;"as&nbsp;is",&nbsp;without&nbsp;any&nbsp;warranty.</span><br /><br /><span style="font-family: Verdana;">**&nbsp;&nbsp;The&nbsp;wsdl2h&nbsp;tool&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">is</span><span style="font-family: Verdana;">&nbsp;released&nbsp;under&nbsp;one&nbsp;of&nbsp;the&nbsp;following&nbsp;two&nbsp;licenses:</span><br /><span style="font-family: Verdana;">**&nbsp;&nbsp;GPL&nbsp;or&nbsp;the&nbsp;commercial&nbsp;license&nbsp;by&nbsp;Genivia&nbsp;Inc.&nbsp;Use&nbsp;option&nbsp;-l&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;details.</span><br /><br /><span style="font-family: Verdana;">Usage:&nbsp;wsdl2h&nbsp;[-a]&nbsp;[-c]&nbsp;[-d]&nbsp;[-e]&nbsp;[-f]&nbsp;[-g]&nbsp;[-h]&nbsp;[-I&nbsp;path]&nbsp;[-i]&nbsp;[-j]&nbsp;[-k]&nbsp;[-l]&nbsp;[</span><br /><span style="font-family: Verdana;">-m]&nbsp;[-n&nbsp;name]&nbsp;[-N&nbsp;name]&nbsp;[-p|-P]&nbsp;[-q&nbsp;name]&nbsp;[-r&nbsp;proxyhost[:port[:uid:pwd]]]&nbsp;[-s]&nbsp;[</span><br /><span style="font-family: Verdana;">-t&nbsp;typemapfile]&nbsp;[-u]&nbsp;[-v]&nbsp;[-w]&nbsp;[-W]&nbsp;[-x]&nbsp;[-y]&nbsp;[-z#]&nbsp;[-_]&nbsp;[-o&nbsp;outfile.h]&nbsp;infile.w</span><br /><span style="font-family: Verdana;">sdl&nbsp;infile.xsd&nbsp;http:</span><span style="color: #008000; font-family: Verdana;">//</span><span style="color: #008000; font-family: Verdana;">www<img src="http://www.cppblog.com/Images/dot.gif" alt="" />&nbsp;<img src="http://www.cppblog.com/Images/dot.gif" alt="" /></span><span style="color: #008000; "><br /></span><br /><span style="font-family: Verdana;">-a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;indexed&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">struct</span><span style="font-family: Verdana;">&nbsp;names&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;local&nbsp;elements&nbsp;with&nbsp;anonymous&nbsp;types</span><br /><span style="font-family: Verdana;">-c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;C&nbsp;source&nbsp;code</span><br /><span style="font-family: Verdana;">-d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;DOM&nbsp;to&nbsp;populate&nbsp;xs:any,&nbsp;xs:anyType,&nbsp;and&nbsp;xs:anyAttribute</span><br /><span style="font-family: Verdana;">-e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;qualify&nbsp;enum&nbsp;names</span><br /><span style="font-family: Verdana;">-f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;flat&nbsp;C++&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">class</span><span style="font-family: Verdana;">&nbsp;hierarchy</span><br /><span style="font-family: Verdana;">-g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;global&nbsp;top-level&nbsp;element&nbsp;declarations</span><br /><span style="font-family: Verdana;">-h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;help&nbsp;info</span><br /><span style="font-family: Verdana;">-i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;import&nbsp;(advanced&nbsp;option)</span><br /><span style="font-family: Verdana;">-Ipath&nbsp;&nbsp;use&nbsp;path&nbsp;to&nbsp;find&nbsp;files</span><br /><span style="font-family: Verdana;">-j&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;SOAP_ENV__Header&nbsp;and&nbsp;SOAP_ENV__Detail&nbsp;definitions</span><br /><span style="font-family: Verdana;">-k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;SOAP_ENV__Header&nbsp;mustUnderstand&nbsp;qualifiers</span><br /><span style="font-family: Verdana;">-l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;license&nbsp;information</span><br /><span style="font-family: Verdana;">-m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;xsd.h&nbsp;module&nbsp;to&nbsp;import&nbsp;primitive&nbsp;types</span><br /><span style="font-family: Verdana;">-nname&nbsp;&nbsp;use&nbsp;name&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">as</span><span style="font-family: Verdana;">&nbsp;the&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">base</span>&nbsp;<span style="color: #0000ff; font-family: Verdana;">namespace</span><span style="font-family: Verdana;">&nbsp;prefix&nbsp;instead&nbsp;of&nbsp;'ns'</span><br /><span style="font-family: Verdana;">-Nname&nbsp;&nbsp;use&nbsp;name&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">as</span><span style="font-family: Verdana;">&nbsp;the&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">base</span>&nbsp;<span style="color: #0000ff; font-family: Verdana;">namespace</span><span style="font-family: Verdana;">&nbsp;prefix&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;service&nbsp;namespaces</span><br /><span style="font-family: Verdana;">-ofile&nbsp;&nbsp;output&nbsp;to&nbsp;file</span><br /><span style="font-family: Verdana;">-p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create&nbsp;polymorphic&nbsp;types&nbsp;with&nbsp;C++&nbsp;inheritance&nbsp;from&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">base</span><span style="font-family: Verdana;">&nbsp;xsd__anyType</span><br /><span style="font-family: Verdana;">-P&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;create&nbsp;polymorphic&nbsp;types&nbsp;with&nbsp;C++&nbsp;inheritance&nbsp;from&nbsp;xsd__anyType</span><br /><span style="font-family: Verdana;">-qname&nbsp;&nbsp;use&nbsp;name&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;the&nbsp;C++&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">namespace</span><span style="font-family: Verdana;">&nbsp;of&nbsp;all&nbsp;declarations</span><br /><span style="font-family: Verdana;">-rhost[:port[:uid:pwd]]</span><br /><span style="font-family: Verdana;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connect&nbsp;via&nbsp;proxy&nbsp;host,&nbsp;port,&nbsp;and&nbsp;proxy&nbsp;credentials</span><br /><span style="font-family: Verdana;">-s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;STL&nbsp;code&nbsp;(no&nbsp;std::string&nbsp;and&nbsp;no&nbsp;std::vector)</span><br /><span style="font-family: Verdana;">-tfile&nbsp;&nbsp;use&nbsp;type&nbsp;map&nbsp;file&nbsp;instead&nbsp;of&nbsp;the&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">default</span><span style="font-family: Verdana;">&nbsp;file&nbsp;typemap.dat</span><br /><span style="font-family: Verdana;">-u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;unions</span><br /><span style="font-family: Verdana;">-v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verbose&nbsp;output</span><br /><span style="font-family: Verdana;">-w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;always&nbsp;wrap&nbsp;response&nbsp;parameters&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">in</span><span style="font-family: Verdana;">&nbsp;a&nbsp;response&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">struct</span><span style="font-family: Verdana;">&nbsp;(&lt;=1.1.4&nbsp;behavior)</span><br /><span style="font-family: Verdana;">-W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;suppress&nbsp;warnings</span><br /><span style="font-family: Verdana;">-x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;_XML&nbsp;any/anyAttribute&nbsp;extensibility&nbsp;elements</span><br /><span style="font-family: Verdana;">-y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;typedef&nbsp;synonyms&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;structs&nbsp;and&nbsp;enums</span><br /><span style="font-family: Verdana;">-z1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compatibility&nbsp;with&nbsp;2.7.6e:&nbsp;generate&nbsp;pointer-based&nbsp;arrays</span><br /><span style="font-family: Verdana;">-z2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compatibility&nbsp;with&nbsp;2.7.15:&nbsp;qualify&nbsp;element/attribute&nbsp;referenced&nbsp;members</span><br /><span style="font-family: Verdana;">-_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;_USCORE&nbsp;(replace&nbsp;with&nbsp;UNICODE&nbsp;_x005f)</span></div><div class="lemma-main-content" style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">infile.wsdl&nbsp;infile.xsd&nbsp;http:</span><span style="font-size: 13px; color: #008000; font-family: Verdana;">//</span><span style="font-size: 13px; color: #008000; font-family: Verdana;">www<img src="http://www.cppblog.com/Images/dot.gif" alt="" /></span><span style="font-size: 13px; color: #008000; font-family: Verdana;">&nbsp;list&nbsp;of&nbsp;input&nbsp;sources&nbsp;(if&nbsp;none:&nbsp;use&nbsp;stdin)</span><strong>&nbsp;</strong></div><div class="lemma-main-content" style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><strong style="font-family: Verdana;">soapcpp2</strong></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Verdana;">Usage:&nbsp;soapcpp2&nbsp;[-1|-2]&nbsp;[-C|-S]&nbsp;[-T]&nbsp;[-L]&nbsp;[-a]&nbsp;[-b]&nbsp;[-c]&nbsp;[-d&nbsp;path]&nbsp;[-e]&nbsp;[-f&nbsp;N]&nbsp;[</span><br /><span style="font-family: Verdana;">-h]&nbsp;[-i]&nbsp;[-I&nbsp;path;path;</span><img src="http://www.cppblog.com/Images/dot.gif" alt="" /><span style="font-family: Verdana;">]&nbsp;[-k]&nbsp;[-l]&nbsp;[-m]&nbsp;[-n]&nbsp;[-p&nbsp;name]&nbsp;[-s]&nbsp;[-t]&nbsp;[-u]&nbsp;[-v]&nbsp;[-</span><br /><span style="font-family: Verdana;">w]&nbsp;[-x]&nbsp;[-y]&nbsp;[infile]</span><br /><br /><span style="font-family: Verdana;">-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;SOAP&nbsp;1.1&nbsp;bindings</span><br /><span style="font-family: Verdana;">-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;SOAP&nbsp;1.2&nbsp;bindings</span><br /><span style="font-family: Verdana;">-C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;client-side&nbsp;code&nbsp;only</span><br /><span style="font-family: Verdana;">-S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;server-side&nbsp;code&nbsp;only</span><br /><span style="font-family: Verdana;">-T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;server&nbsp;auto-test&nbsp;code</span><br /><span style="font-family: Verdana;">-L&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;soapClientLib/soapServerLib</span><br /><span style="font-family: Verdana;">-a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;SOAPAction&nbsp;HTTP/WSA&nbsp;header&nbsp;to&nbsp;invoke&nbsp;server-side&nbsp;operations</span><br /><span style="font-family: Verdana;">-b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serialize&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">byte</span><span style="font-family: Verdana;">&nbsp;arrays&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">char</span><span style="font-family: Verdana;">[N]&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">as</span>&nbsp;<span style="color: #0000ff; font-family: Verdana;">string</span><br /><span style="font-family: Verdana;">-c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;C&nbsp;source&nbsp;code</span><br /><span style="font-family: Verdana;">-dpath&nbsp;&nbsp;use&nbsp;path&nbsp;to&nbsp;save&nbsp;files</span><br /><span style="font-family: Verdana;">-e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;SOAP&nbsp;RPC&nbsp;encoding&nbsp;style&nbsp;bindings</span><br /><span style="font-family: Verdana;">-fN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;split&nbsp;of&nbsp;N&nbsp;XML&nbsp;serializer&nbsp;implementations&nbsp;per&nbsp;file&nbsp;(N&gt;=10)</span><br /><span style="font-family: Verdana;">-h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;help&nbsp;info</span><br /><span style="font-family: Verdana;">-Ipath&nbsp;&nbsp;use&nbsp;path(s)&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;#import</span><br /><span style="font-family: Verdana;">-i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;C++&nbsp;service&nbsp;proxies&nbsp;and&nbsp;objects&nbsp;inherited&nbsp;from&nbsp;soap&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">struct</span><br /><span style="font-family: Verdana;">-j&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;C++&nbsp;service&nbsp;proxies&nbsp;and&nbsp;objects&nbsp;that&nbsp;share&nbsp;a&nbsp;soap&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">struct</span><br /><span style="font-family: Verdana;">-k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;data&nbsp;structure&nbsp;walkers&nbsp;(experimental)</span><br /><span style="font-family: Verdana;">-l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;linkable&nbsp;modules&nbsp;(experimental)</span><br /><span style="font-family: Verdana;">-m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;Matlab(tm)&nbsp;code&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;MEX&nbsp;compiler</span><br /><span style="font-family: Verdana;">-n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;service&nbsp;name&nbsp;to&nbsp;rename&nbsp;service&nbsp;functions&nbsp;and&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">namespace</span><span style="font-family: Verdana;">&nbsp;table</span><br /><span style="font-family: Verdana;">-pname&nbsp;&nbsp;save&nbsp;files&nbsp;with&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">new</span><span style="font-family: Verdana;">&nbsp;prefix&nbsp;name&nbsp;instead&nbsp;of&nbsp;'soap'</span><br /><span style="font-family: Verdana;">-qname&nbsp;&nbsp;use&nbsp;name&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">as</span><span style="font-family: Verdana;">&nbsp;the&nbsp;C++&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">namespace</span><span style="font-family: Verdana;">&nbsp;of&nbsp;all&nbsp;declarations</span><br /><span style="font-family: Verdana;">-s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;deserialization&nbsp;code&nbsp;with&nbsp;strict&nbsp;XML&nbsp;validation&nbsp;checks</span><br /><span style="font-family: Verdana;">-t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;code&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">for</span><span style="font-family: Verdana;">&nbsp;fully&nbsp;xsi:type&nbsp;typed&nbsp;SOAP/XML&nbsp;messaging</span><br /><span style="font-family: Verdana;">-u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uncomment&nbsp;comments&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">in</span><span style="font-family: Verdana;">&nbsp;WSDL/schema&nbsp;output&nbsp;by&nbsp;suppressing&nbsp;XML&nbsp;comments</span><br /><span style="font-family: Verdana;">-v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;version&nbsp;info</span><br /><span style="font-family: Verdana;">-w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;WSDL&nbsp;and&nbsp;schema&nbsp;files</span><br /><span style="font-family: Verdana;">-x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;don't&nbsp;generate&nbsp;sample&nbsp;XML&nbsp;message&nbsp;files</span><br /><span style="font-family: Verdana;">-y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;C/C++&nbsp;type&nbsp;access&nbsp;information&nbsp;</span><span style="color: #0000ff; font-family: Verdana;">in</span><span style="font-family: Verdana;">&nbsp;sample&nbsp;XML&nbsp;messages</span></div><div class="lemma-main-content" style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="background-color: #eeeeee; font-size: 13px; font-family: Verdana;">infile&nbsp;&nbsp;header&nbsp;file&nbsp;to&nbsp;parse&nbsp;(or&nbsp;stdin)</span><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br /></strong><strong style="font-family: Verdana;">其他相关链接：</strong><span style="font-family: Verdana;">
</span><a href="http://www.cppblog.com/woaidongmao/archive/2008/05/28/51400.html" style="font-family: Verdana;">http://www.cppblog.com/woaidongmao/archive/2008/05/28/51400.html</a></div></div></div><img src ="http://www.cppblog.com/wanghaiguang/aggbug/195276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2012-11-16 17:14 <a href="http://www.cppblog.com/wanghaiguang/archive/2012/11/16/195276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Wget.exe和cuil.exe下载地址</title><link>http://www.cppblog.com/wanghaiguang/archive/2012/09/05/189571.html</link><dc:creator>王海光</dc:creator><author>王海光</author><pubDate>Wed, 05 Sep 2012 08:23:00 GMT</pubDate><guid>http://www.cppblog.com/wanghaiguang/archive/2012/09/05/189571.html</guid><wfw:comment>http://www.cppblog.com/wanghaiguang/comments/189571.html</wfw:comment><comments>http://www.cppblog.com/wanghaiguang/archive/2012/09/05/189571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wanghaiguang/comments/commentRss/189571.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wanghaiguang/services/trackbacks/189571.html</trackback:ping><description><![CDATA[<span style="font-family: Verdana; font-size: 12pt">Wget.exe：</span><a href="http://gnuwin32.sourceforge.net/packages/wget.htm"><span style="font-family: Verdana; font-size: 12pt">http://gnuwin32.sourceforge.net/packages/wget.htm</span></a><br /><span style="font-family: Verdana; font-size: 12pt">curl.exe:&nbsp;&nbsp;&nbsp; </span><a href="http://curl.haxx.se/download.html"><span style="font-family: Verdana; font-size: 12pt">http://curl.haxx.se/download.html</span></a> <br /><br /><span style="font-family: Verdana; font-size: 12pt">wget.exe curl.exe下载命令</span><br /><span style="font-family: Verdana; font-size: 12pt">curl.exe检测下载文件是否正确-f，wget.exe生成下载文档来检测</span><br /><br /><span style="font-family: Verdana; font-size: 12pt">Download&nbsp; wget </span><a href="http://127.0.0.1/update_ex.txt"><span style="font-family: Verdana; font-size: 12pt">http://127.0.0.1/update_ex.txt</span></a><span style="font-family: Verdana; font-size: 12pt"> -O d:\2.txt -o c:\\DownLoad.txt</span><br /><span style="font-family: Verdana; font-size: 12pt">Download&nbsp; curl </span><a href="http://127.0.0.1/update_ex.txt"><span style="font-family: Verdana; font-size: 12pt">http://127.0.0.1/update_ex.txt</span></a><span style="font-family: Verdana; font-size: 12pt"> -o d:\2.txt -f </span><img src ="http://www.cppblog.com/wanghaiguang/aggbug/189571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wanghaiguang/" target="_blank">王海光</a> 2012-09-05 16:23 <a href="http://www.cppblog.com/wanghaiguang/archive/2012/09/05/189571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>