﻿<?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++博客-C++ Programmer's Cookbook</title><link>http://www.cppblog.com/mzty/</link><description>&lt;br/&gt;  
&lt;br/&gt;
&lt;a href = "http://www.cppblog.com/mzty/archive/2007/03/02/19109.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{C++ 基础}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "http://www.cppblog.com/mzty/archive/2007/08/13/29922.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{C++ 高级}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "http://www.cppblog.com/mzty/archive/2007/04/16/22064.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{C#界面，C++核心算法}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "http://www.cppblog.com/mzty/archive/2007/03/04/19163.html"&gt;&lt;font size = 5 color ="#00FFFF"&gt;{设计模式}&lt;font/&gt;&lt;/a&gt;

&lt;a href = "
http://www.cppblog.com/mzty/archive/2007/03/04/19167.html"&gt;&lt;font size = 5 color ="#FF0000"&gt;{C#基础}&lt;font/&gt;&lt;/a&gt;





</description><language>zh-cn</language><lastBuildDate>Sat, 05 Jul 2008 03:59:28 GMT</lastBuildDate><pubDate>Sat, 05 Jul 2008 03:59:28 GMT</pubDate><ttl>60</ttl><item><title>3D CAD软件及核心</title><link>http://www.cppblog.com/mzty/archive/2008/06/19/54040.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Thu, 19 Jun 2008 10:15:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/19/54040.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/54040.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/19/54040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/54040.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/54040.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>3D CAD软件及核心</p>
<p>一 3D CAD软件</p>
<p>1）CATIA （达索Dassault Aviation）（高端）（）</p>
<p>CATIA是英文 Computer Aided Tri-Dimensional Interface Application 的缩写。是世界上一种主流的CAD/CAE/CAM一体化软件。在70年代Dassault Aviation 成为了第一个用户，CATIA 也应运而生。从1982年到1988年，CATIA 相继发布了1版本、2版本、3版本，并于1993年发布了功能强大的4版本，现在的CATIA 软件分为V4版本和 V5版本两个系列。V4版本应用于UNIX 平台，V5版本应用于UNIX和Windows 两种平台。V5版本的开发开始于1994年。为了使软件能够易学易用，Dassault System 于94年开始重新开发全新的CATIA V5版本，新的V5版本界面更加友好，功能也日趋强大，并且开创了CAD/CAE/CAM 软件的一种全新风格。<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 法国 Dassault Aviation 是世界著名的航空航天企业。其产品以幻影2000和阵风战斗机最为著名。CATIA的产品开发商Dassault System 成立于1981年。而如今其在CAD/CAE/CAM 以及PDM 领域内的领导地位，已得到世界范围内的承认。其销售利润从最开始的一百万美圆增长到现在的近二十亿美圆。雇员人数由20人发展到2，000多人。<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; CATIA是法国Dassault System公司的CAD/CAE/CAM一体化软件，居世界CAD/CAE/CAM领域的领导地位，广泛应用于航空航天、汽车制造、造船、机械制造、电子\电器、消费品行业，它的集成解决方案覆盖所有的产品设计与制造领域，其特有的DMU电子样机模块功能及混合建模技术更是推动着企业竞争力和生产力的提高。CATIA 提供方便的解决方案，迎合所有工业领域的大、中、小型企业需要。包括:从大型的波音747飞机、火箭发动机到化妆品的包装盒，几乎涵盖了所有的制造业产品。在世界上有超过13,000的用户选择了CATIA。CATIA 源于航空航天业，但其强大的功能以得到各行业的认可，在欧洲汽车业，已成为事实上的标准。CATIA 的著名用户包括波音、克莱斯勒、宝马、奔驰等一大批知名企业。其用户群体在世界制造业中具有举足轻重的地位。波音飞机公司使用CATIA完成了整个波音 777的电子装配，创造了业界的一个奇迹，从而也确定了CATIA 在CAD/CAE/CAM 行业内的领先地位。</p>
<p><br>2）UG （UGS现被西门子收购）（高端）（Parasolid几何造型核心为基础，采用基于约束的特征建模技术和传统的几何建模为一体的复合建模技术）</p>
<p>Unigraphics Solutions公司(简称UGS)是全球著名的MCAD供应商,主要为汽车与交通、航空航天、日用消费品、通用机械以及电子工业等领域通过其虚拟产品开发(VPD)的理念提供多级化的、集成的、企业级的包括软件产品与服务在内的完整的 MCAD解决方案。其主要的CAD产品是UG。<br>UG公司的产品主要有为机械制造企业提供包括从设计、分析到制造应用的Unigraphics软件、基于Windows的设计与制图产品Solid Edge、集团级产品数据管理系统iMAN、产品可视化技术ProductVision以及被业界广泛使用的高精度边界表示的实体建模核心 Parasolid在内的全线产品。<br>UG在航空航天、汽车、通用机械、工业设备、医疗器械以及其它高科技应用领域的机械设计和模具加工自动化的市场上得到了广泛的应用。多年来，UGS一直在支持美国通用汽车公司实施目前全球最大的虚拟产品开发项目，同时Unigraphics也是日本著名汽车零部件制造商DENSO公司的计算机应用标准，并在全球汽车行业得到了很大的应用，如Navistar、底特律柴油机厂、Winnebago和Robert Bosch AG 等。<br>另外，UGS公司在航空领域也有很好的的表现：在美国的航空业，安装了超过10,000套UG软件；在俄罗斯航空业，UG软件具有90%以上的市场；在北美汽轮机市场，UG软件占80%。UGS在喷气发动机行业也占有领先地位，拥有如Pratt &amp; Whitney和GE 喷气发动机公司这样的知名客户。航空业的其它客户还有：B/E航空公司、波音公司、 以色列飞机公司、英国航空公司、Northrop Grumman、伊尔飞机和Antonov。<br>UGS公司的产品同时还遍布通用机械、医疗器械、电子、高技术以及日用消费品等行业，如：3M、Will-Pemco、Biomet、Zimmer、飞利浦公司、吉列公司、Timex、 Eureka 和Arctic Cat等。</p>
<p><br>3）Pro/ENGINEER（PTC）（中端）(PROE是参数化造型的开创者，以其参数化、基于特征、全相关等概念闻名于CAD界)</p>
<p>1985年，PTC公司成立于美国波士顿，开始参数化建模软件的研究。1988年，V1.0的Pro/ENGINEER诞生了。经过10余年的发展，Pro/ENGINEER已经成为三维建模软件的领头羊。目前已经发布了Pro/ENGINEER2000i2。PTC的系列软件包括了在工业设计和机械设计等方面的多项功能，还包括对大型装配体的管理、功能仿真、制造、产品数据管理等等。Pro/ENGINEER还提供了目前所能达到的最全面、集成最紧密的产品开发环境。PRO/E的最新版本为PRO/E2000i，它可运行于Windows/NT和UNIX平台上，共有六大主模块，下面我把它们逐一介绍给大家。</p>
<p>PRO/E概述<br>PRO/ENGINEER软件包的产品开发环境在支持并行工作，它通过一系列完全相关的模块表述产品的外形、装配及其他功能。PRO/E能够让多个部门同时致力于单一的产品模型。包括对大型项目的装配体管理、功能仿真、制造、数据管理等。其中PRO/E V2000I更增加了行为建模技术使其成为把梦想变为现实的杰出工具。</p>
<p>4）solidworks（SolidWorks被达索收购）（低端）（Parasolid几何造型核心为基础，采用基于约束的特征建模技术和传统的几何建模为一体的复合建模技术）</p>
<p>SolidWorks公司成立于1993年，由PTC公司的技术副总裁与CV公司的副总裁发起，总部位于马萨诸塞州的康克尔郡（Concord,Massachusetts）内，当初所赋予的任务是希望在每一个工程师的桌面上提供一套具有生产力的实体模型设计系统。从1995年推出第一套SolidWorks三维机械设计软件至今，它已经拥有位于全球的办事处，并经由300家经销商在全球140个国家进行销售与分销该产品。　SolidWorks软件是世界上第一个基于Windows开发的三维CAD系统，由于技术创新符合CAD技术的发展潮流和趋势，SolidWorks 公司于两年间成为CAD/CAM产业中获利最高的公司。良好的财务状况和用户支持使得SolidWorks每年都有数十乃至数百项的技术创新，公司也获得了很多荣誉。该系统在1995-1999年获得全球微机平台CAD系统评比第一名；从1995年至今，已经累计获得十七项国际大奖，其中仅从1999年起，美国权威的CAD专业杂志CADENCE连续4年授予SolidWorks最佳编辑奖，以表彰SolidWorks的创新、活力和简明。至此，SolidWorks所遵循的易用、稳定和创新三大原则得到了全面的落实和证明，使用它，设计师大大缩短了设计时间，产品快速、高效地投向了市场。<br>&nbsp;&nbsp;&nbsp; 由于SolidWorks出色的技术和市场表现，不仅成为CAD行业的一颗耀眼的明星，也成为华尔街青睐的对象。终于在1997年由法国达索公司以三亿一千万美元的高额市值将SolidWorks全资并购。公司原来的风险投资商和股东，以一千三百万美元的风险投资，获得了高额的回报，创造了CAD行业的世界纪录。并购后的SolidWorks以原来的品牌和管理技术队伍继续独立运作，成为CAD行业一家高素质的专业化公司，SolidWorks三维机械设计软件也成为达索企业中最具竞争力的CAD产品。</p>
<p>5) autodesk inventor(autodesk)(低端)（）<br>Autodesk Inventor 2008产品线提供了一套全面、集成的设计工具，可用于三维设计和建档、创建布线系统和验证设计。 Inventor产品线中的所有产品包均包括强大的数据管理软件和面向二维制图和详细设计的 AutoCAD Mechanical软件。</p>
<p>6)solidege(UGS现被西门子收购)(低端)</p>
<p>二 3D CAD软件核心</p>
<p>1）ACIS是用C＋＋语言编写的，由于没有基于ACIS的高中端CAD软件开发出来，ACIS的维护和提供实时的技术支持看起来要比Parasolid差点。总言之，ACIS的稳定性较差，但容易上手，适用于学校里的研究工作或做个DEMO版演示软件；</p>
<p>2）OpenCasCade是个免费包，适用于市场份额不大的软件开发。比如CMM测量软件，CMM软件一年销售几千套已经是非常好的业绩了。OpenCasCade用于学习研究还是不错的，算法都看得到，不过这是需要良好的数学（比如：高等几何）功底的。</p>
<p>3）Parasolid包里的复杂的曲面造型功能看起来UGS公司有所保留，不过，UGS最近被西门子收购，纯粹的软件行业看起来比较脆弱，前几年的网络泡沫，现在看起来软件泡沫也不远了。</p>
<p>4）ACIS和Parasolid价格差不多，如果是商业开发的话，还是选择Parasolid稳妥点。</p>
<p>三 3D CAD软件选择</p>
<p>几种三维软件的特点结合我的经验对比：<br>1）Solidworks：用法简单，对于非复杂曲面实体建模能力还可以；<br>2）UG：功能强大，操作一般，作模具较好；<br>3）CATIA：功能强大，是当今一流的三维软件，但是操作复杂，一般公司不用，像波音等大公司使用，在中国汽车行业常用；<br>4) PRO/E：功能强大，操作简单，曲面能力强，适用于产品外观模型的建立与结构的设计，制作模具能力较差。<br>至于3DMAX之流，根本不是三维CAD软件，不值一提。 </p><img src ="http://www.cppblog.com/mzty/aggbug/54040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2008-06-19 18:15 <a href="http://www.cppblog.com/mzty/archive/2008/06/19/54040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>盖茨53年人生大事记</title><link>http://www.cppblog.com/mzty/archive/2008/06/18/53911.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Wed, 18 Jun 2008 09:35:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/18/53911.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/53911.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/18/53911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/53911.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/53911.html</trackback:ping><description><![CDATA[<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;《连线》杂志近日撰文称，微软创始人兼董事会主席比尔&#183;盖茨(Bill Gates)将于7月正式退出微软的日常运营，全身心投入慈善事业。盖茨的离去将令很多人依依不舍，不仅因为他白手起家的传奇经历激励着人们矢志前进，而且，在盖茨的财富背后，还隐藏着一种更为根本的东西，值得我们去探究。在盖茨与我们告别之际，让我们来回顾一下他走过的50多年的难忘瞬间。
<p>　　<strong>20世纪50年代</strong></p>
<p>　　1955年10月28日 </p>
<p>　　威廉-亨利&#183;盖茨三世出生于西雅图。祖母奥黛丽给他起了一个外号——&#8220;特利&#8221;(Trey)，Trey在英语中的意思是三点的牌、骰子或骨牌。盖茨后来也确实成了一名扑克牌高手。</p>
<p><strong>　　20世纪60年代</strong></p>
<p>　　1967年</p>
<p>　　盖茨上六年级，学习成绩不佳，他充满困惑地问妈妈，&#8220;您曾尝试思考吗？&#8221;</p>
<p>　　1967年秋 </p>
<p>　　盖茨的父母把他送进了湖边学校(Lakeside School)，这是西雅图一所男子学校。他是班里最矮的学生。</p>
<p>　　1968年</p>
<p>　　盖茨和湖边学校同班同学保罗&#183;艾伦(Paul Allen)从手册中学会了Basic语言。几周后，这两个小家伙便将学校用于支付PDP-10电脑使用时间的3000美元年度预算花得一干二净。他们俩不久即与电脑中心公司签了一份合约，向其报告PDP-10电脑中存在的软件缺陷，而报酬是免费使用电脑。</p>
<p><strong>　　20世纪70年代</strong></p>
<p>　　1971年</p>
<p>　　盖茨为湖边学校编写程序，包括一个设计班级课程表的程序。</p>
<p>　　1973年9月</p>
<p>　　盖茨考入哈佛大学。他的学习成绩很不稳定。他有很多坏习惯，经常旷课去编程、玩牌，不爱洗澡，喜欢比萨饼和碳酸饮料。他与住在同一个宿舍的史蒂夫&#183;鲍尔默(Steve Ballmer)结为好友。</p>
<p>　　1975年1月</p>
<p>　　艾伦无意中看到了《大众电子》的封面，上面是Altair 8800电脑的照片和&#8220;全球第一台对抗商业模式的微型电脑装置&#8221;的大字标题。艾伦买了一本，并冲进盖茨的房间。几天后，盖茨给Altair电脑制造商 MITS打去电话，告诉该公司他和艾伦能为8800电脑开发出Basic语言。</p>
<p>　　1975年2月1日</p>
<p>　　盖茨和艾伦完成Basic开发，将其以3000美元外加最高达18万美元的版税卖给MITS公司。</p>
<p>　　1976年11月26日</p>
<p>　　盖茨和艾伦注册了微软(Microsoft)商标。他们一度考虑以艾伦与盖茨(Allen &amp; Gates)作为公司名称，后提出Micro-Soft，但他们决定将中间的连字符去掉，于是微软就此诞生。当时艾伦23岁，盖茨21岁。</p>
<p>　　1977年1月</p>
<p>　　盖茨从哈佛大学休学，在新墨西哥州阿尔伯克基创建了微软，MITS总部也设在此地。</p>
<p>　　1977年</p>
<p>　　盖茨的秘书多次在微软办公大楼内发现盖茨躺在地板上呼呼大睡。他仍喜欢吃比萨饼，同时对属下要求严格，经常与同事争辩。盖茨经常说的一句话是：&#8220;这是我有史以来听说的最愚蠢的事情。&#8221;</p>
<p>　　1977年底</p>
<p>　　盖茨多次因驾驶保时捷911超速而被警方逮捕，还有一次则是无照驾驶。这可害苦了艾伦，他保释盖茨的经历至少有一次。</p>
<p>　　1978年12月</p>
<p>　　微软年终销售额超过100万美元。</p>
<p>　　1979年1月1日</p>
<p>　　微软将公司总部迁至华盛顿州贝尔维尤市。</p>
<p><strong>　　20世纪80年代</strong></p>
<p>　　1980年8月28日</p>
<p>　　盖茨与IBM签署合同，同意为这家PC制造商开发软件。后来，他以5万美元买了一套名为QDOS的操作系统，稍加改进并更名为DOS，便授权IBM使用。</p>
<p>　　1981年8月12日</p>
<p>　　IBM开始销售具有MS-DOS 1.0的PC。</p>
<p>　　1982年</p>
<p>　　在上市销售的第一年，MS-DOS被授权于50个硬件制造商使用。</p>
<p>　　1983年2月18日</p>
<p>　　艾伦因身患霍奇金氏病被迫辞去微软副总裁一职。他买了一个<a class=akey href="http://sports.sina.com.cn/basketball/" target=_blank><span style="COLOR: #0066cc">篮球</span></a>队，创建了一个音乐博物馆，拥有世界上第三大游艇。</p>
<p>　　1983年11月10日</p>
<p>　　Windows揭开神秘面纱。Windows是MS-DOS的延伸，可提供图形用户界面。</p>
<p>　　1984年1月24日</p>
<p>　　盖茨出席了Macintosh的上市宣传活动——微软是第一批为苹果电脑开发软件的公司之一。</p>
<p>　　1985年</p>
<p>　　有报道称盖茨粗暴辱骂一位女高管，后者要求调离岗位。</p>
<p>　　1985年8月12日</p>
<p>　　经过10年的奋斗，微软产品的销售额达到1.4亿美元。</p>
<p>　　1986年3月13日</p>
<p>　　微软以每股21美元公开发售股票。当天微软股价报收于28美元，为公司筹集到6100万美元。</p>
<p>　　1987年</p>
<p>　　盖茨在曼哈顿召开的微软新闻发布会上邂逅梅琳达&#183;弗朗奇(Melinda French)。</p>
<p>　　1989年8月1日</p>
<p>　　微软推出Office办公软件。</p>
<p><strong>　　20世纪90年代</strong></p>
<p>　　1990年5月13日</p>
<p>　　盖茨在母亲节这一天提出微软公司高层退休时间表。</p>
<p>　　1990年6月</p>
<p>　　美国联邦贸易委员会对微软和IBM在PC软件市场可能存在的勾结行为展开调查。</p>
<p>　　1993年4月11日</p>
<p>　　在从佛罗里达州飞往西雅图的包机上，盖茨向梅琳达求婚。盖茨还安排飞机在奥马哈降落，带着梅琳达同好友沃伦&#183;巴菲特(Warren Buffett)一同出去购物。</p>
<p>　　1993年8月20日</p>
<p>　　美国司法部从联邦贸易委员会接管对微软的调查。</p>
<p>　　1994年1月1日</p>
<p>　　盖茨和梅琳达在夏威夷拉奈小岛上举行了小型婚礼。为给新婚妻子一个惊喜，盖茨特意安排梅琳达最喜欢的歌手威利&#183;尼尔森(Willie Nelson)在婚礼上表演。</p>
<p>　　1994年4月</p>
<p>　　好消息：盖茨首次登上了《连线》杂志封面。坏消息：美国政府对微软展开了反垄断调查。</p>
<p>　　1994年7月</p>
<p>　　微软同意接受美国政府签署的法令，承诺放弃极端的反竞争商业行为(例如，要求硬件制造商为其所生产的配置特定微处理器的所有电脑支付MS-DOS授权费，即使该电脑没有安装这一操作系统)。</p>
<p>　　1994年11月11日</p>
<p>　　盖茨以3080万美元购得达&#183;芬奇的《哈默手稿》(Codex Hammer)——达&#183;芬奇亲笔写下的72页科学手稿。他同意将《哈默手稿》公开展示。</p>
<p>　　1995年</p>
<p>　　盖茨出现在可口可乐(据报道他喜欢喝健怡可乐)的商业广告中：这位亿万富翁搜遍全身口袋，寻找购买饮料的零钱。</p>
<p>　　1995年7月17日</p>
<p>　　39岁的盖茨以129亿美元的个人财富成为世界首富。微软在1995年的收入达到59亿美元，拥有17,801名员工。</p>
<p>　　1995年8月24日</p>
<p>　　微软推出网络浏览器Internet Explorer。</p>
<p>　　1996年6月</p>
<p>　　盖茨第二次登上《连线》杂志封面，这次是用Photoshop软件处理过的他裹着浴袍的照片。</p>
<p>　　1996年12月</p>
<p>　　微软股价创下新高——同比上涨88%。从理论上讲，那一年，盖茨每天的收入高达3000万美元。</p>
<p>　　1997年10月20日</p>
<p>　　因违反1994年签署的协议，美国法院对微软处以每天100万美元的罚款。美国司法部称，微软要求硬件制造商申请Windows 95授权时，必须在其硬件产品中绑定Internet Explorer，由此违反了这一协议。</p>
<p>　　1998年2月4日</p>
<p>　　盖茨在比利时布鲁塞尔会见比利时政府官员和企业家时，遭到奶油蛋糕的袭击。事后，盖茨开玩笑说，&#8220;这块蛋糕可不怎么好吃&#8221;。</p>
<p>　　1998年5月18日</p>
<p>　　美国司法部和20个州的总检察官认为微软将网络浏览器绑定到其操作系统，违反了相关规定，由此对微软提出起诉。</p>
<p>　　1998年11月9日</p>
<p>　　在一段作证录像中，当盖茨表示自己从未蓄意将竞争对手赶出软件市场时，他的身子微微颤抖。医生据此认为盖茨可能患有亚斯伯格症候群(Asperger's syndrome)。</p>
<p>　　1999年</p>
<p>　　盖茨和妻子将威廉&#183;盖茨基金会更名为比尔与梅琳达&#183;盖茨基金会，并提出了减少世界上不公平现象的目标。</p>
<p><strong>　　21世纪初</strong></p>
<p>　　2000年1月13日</p>
<p>　　盖茨辞去微软CEO一职，成为公司首席软件工程师，将大权交给鲍尔默。</p>
<p>　　2000年6月7日</p>
<p>　　美国联邦地区法院法官托马斯&#183;潘菲尔德&#183;杰克逊(Thomas Penfield Jackson)裁定微软应一分为二。</p>
<p>　　2000年11月</p>
<p>　　盖茨第三次登上《连线》杂志封面，这次是为了揭开微软反垄断案后鲜为人知的故事。</p>
<p>　　2001年6月28日</p>
<p>　　美国哥伦比亚地区上诉法院推翻杰克逊法官的裁决。</p>
<p>　　2002年 </p>
<p>　　据针对中国内地和香港年轻人的调查显示，盖茨取代了毛泽东在他们心中的偶像地位。</p>
<p>　　2005年3月2日</p>
<p>　　盖茨在白金汉宫接受英国女王授予的骑士勋章，此前，鲁迪&#183;朱利安尼和斯蒂文&#183;斯皮尔伯格都曾获得这一殊荣。盖茨此后有资格在名字后面加上字母&#8220;KBE&#8221;(英帝国爵级勋章)。</p>
<p>　　2005年12月</p>
<p>　　盖茨夫妇和爱尔兰U2乐队主唱波诺当选为美国《时代》周刊2005年度人物。</p>
<p>　　2006年6月15日</p>
<p>　　盖茨宣布，他将在两年内逐步退出公司的日常事务管理。</p>
<p>　　2006年6月26日</p>
<p>　　在得到巴菲特300多亿美元捐款后，比尔与梅琳达&#183;盖茨基金会规模壮大一倍，成为世界最大的慈善基金会。</p>
<p>　　2008年3月</p>
<p>　　《福布斯》发布08年全球富豪排行榜，蝉联13年首富桂冠的盖茨以580亿美元的资产总值下滑至第三的位置。而盖茨的牌友、&#8220;股神&#8221;巴菲特则取代他问鼎冠军宝座。(杨琳)</p><img src ="http://www.cppblog.com/mzty/aggbug/53911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2008-06-18 17:35 <a href="http://www.cppblog.com/mzty/archive/2008/06/18/53911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#入门代码 </title><link>http://www.cppblog.com/mzty/archive/2008/06/18/53835.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Wed, 18 Jun 2008 04:08:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/18/53835.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/53835.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/18/53835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/53835.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/53835.html</trackback:ping><description><![CDATA[<div class=postbody>
<p>转自：<a href="http://www.cnblogs.com/lyj/archive/2007/01/09/616053.html">http://www.cnblogs.com/lyj/archive/2007/01/09/616053.html</a><br><strong><br>一、从控制台读取东西代码片断：</strong><br>using System;</p>
<p>class TestReadConsole<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.Write(Enter your name:);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strName = Console.ReadLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine( Hi + strName);<br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>二、读文件代码片断：</strong><br>using System; <br>using System.IO; </p>
<p>public class TestReadFile <br>{ <br>&nbsp;&nbsp;&nbsp; public static void Main(String[] args) <br>&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Read text file C:\temp\test.txt <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileStream fs = new FileStream(@c:\temp\test.txt , FileMode.Open, FileAccess.Read); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamReader sr = new StreamReader(fs);&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String line=sr.ReadLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (line!=null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(line);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line=sr.ReadLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sr.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fs.Close();<br>&nbsp;&nbsp;&nbsp; } <br>} <br><strong>三、写文件代码：<br></strong>using System; <br>using System.IO; </p>
<p>public class TestWriteFile <br>{ <br>&nbsp;&nbsp;&nbsp; public static void Main(String[] args) <br>&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Create a text file C:\temp\test.txt <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileStream fs = new FileStream(@c:\temp\test.txt , FileMode.OpenOrCreate, FileAccess.Write); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamWriter sw = new StreamWriter(fs); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Write to the file using StreamWriter class <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sw.BaseStream.Seek(0, SeekOrigin.End); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sw.WriteLine( First Line ); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sw.WriteLine( Second Line); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sw.Flush(); <br>&nbsp;&nbsp;&nbsp; } <br>} <br><strong>四、拷贝文件：</strong><br>using System;<br>using System.IO;</p>
<p>class TestCopyFile<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File.Copy(c:\\temp\\source.txt, C:\\temp\\dest.txt );&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>五、移动文件：<br></strong>using System;<br>using System.IO;</p>
<p>class TestMoveFile<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File.Move(c:\\temp\\abc.txt, C:\\temp\\def.txt );&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>六、使用计时器：</strong><br>using System;<br>using System.Timers;</p>
<p>class TestTimer<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Timer timer = new Timer();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.Elapsed += new ElapsedEventHandler( DisplayTimeEvent );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.Interval = 1000;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.Start();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timer.Enabled = true;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ( Console.Read() != 'q' )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //-------------<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; public static void DisplayTimeEvent( object source, ElapsedEventArgs e )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.Write(\r{0}, DateTime.Now);<br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>七、调用外部程序：</strong><br>class Test <br>{ <br>&nbsp;&nbsp;&nbsp; static void Main(string[] args) <br>&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Diagnostics.Process.Start(notepad.exe); <br>&nbsp;&nbsp;&nbsp; } <br>}</p>
<p><span style="COLOR: red">ADO.NET方面的：</span><br><strong>八、连接Access数据库：</strong><br>using System;<br>using System.Data;<br>using System.Data.OleDb;</p>
<p>class TestADO<br>{<br>&nbsp;&nbsp;&nbsp; static void Main(string[] args)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strDSN = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\test.mdb;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strSQL = SELECT * FROM employees ;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbConnection conn = new OleDbConnection(strDSN);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbCommand cmd = new OleDbCommand( strSQL, conn );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataReader reader = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader = cmd.ExecuteReader();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (reader.Read() )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(First Name:{0}, Last Name:{1}, reader[FirstName], reader[LastName]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(e.Message);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>} <br><strong>九、连接SQL Server数据库：</strong><br>using System;<br>using System.Data.SqlClient;</p>
<p>public class TestADO<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlConnection conn = new SqlConnection(Data Source=localhost; Integrated Security=SSPI; Initial Catalog=pubs);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCommand&nbsp; cmd = new SqlCommand(SELECT * FROM employees, conn);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataReader reader = cmd.ExecuteReader();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (reader.Read())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(First Name: {0}, Last Name: {1}, reader.GetString(0), reader.GetString(1));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Exception Occured --&gt;&gt; {0},e);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>十、从SQL内读数据到XML：<br></strong>using System;<br>using System.Data;<br>using System.Xml;<br>using System.Data.SqlClient; <br>using System.IO; </p>
<p>public class TestWriteXML<br>{ <br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; { </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String strFileName=c:/temp/output.xml;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlConnection conn = new SqlConnection(server=localhost;uid=sa;pwd=;database=db);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String strSql = SELECT FirstName, LastName FROM employees; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataAdapter adapter = new SqlDataAdapter(); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adapter.SelectCommand = new SqlCommand(strSql,conn);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Build the DataSet<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet ds = new DataSet();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adapter.Fill(ds, employees);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get a FileStream object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileStream fs = new FileStream(strFileName,FileMode.OpenOrCreate,FileAccess.Write);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Apply the WriteXml method to write an XML document<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ds.WriteXml(fs);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fs.Close();</p>
<p>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>十一、用ADO添加数据到数据库中：<br></strong>using System;<br>using System.Data;&nbsp;&nbsp; <br>using System.Data.OleDb;&nbsp;&nbsp; </p>
<p>class TestADO<br>{&nbsp; <br>&nbsp;&nbsp;&nbsp; static void Main(string[] args)&nbsp; <br>&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strDSN = Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\test.mdb;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strSQL = INSERT INTO Employee(FirstName, LastName) VALUES('FirstName', 'LastName') ;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create Objects of ADOConnection and ADOCommand&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbConnection conn = new OleDbConnection(strDSN);&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbCommand cmd = new OleDbCommand( strSQL, conn );&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmd.ExecuteNonQuery();&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Oooops. I did it again:\n{0}, e.Message);&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; } <br>}&nbsp; <br><strong>十二、使用OLEConn连接数据库：</strong><br>using System;<br>using System.Data;&nbsp;&nbsp; <br>using System.Data.OleDb;&nbsp;&nbsp; </p>
<p>class TestADO<br>{&nbsp; <br>&nbsp;&nbsp;&nbsp; static void Main(string[] args)&nbsp; <br>&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strDSN = Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\test.mdb;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strSQL = SELECT * FROM employee ;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbConnection conn = new OleDbConnection(strDSN);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataAdapter cmd = new OleDbDataAdapter( strSQL, conn ); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet ds = new DataSet();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmd.Fill( ds, employee );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataTable dt = ds.Tables[0];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach( DataRow dr in dt.Rows )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(First name: + dr[FirstName].ToString() + Last name: + dr[LastName].ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();&nbsp; <br>&nbsp;&nbsp;&nbsp; } <br>}&nbsp; <br><strong>十三、读取表的属性：</strong><br>using System;<br>using System.Data;&nbsp;&nbsp; <br>using System.Data.OleDb;&nbsp;&nbsp; </p>
<p>class TestADO<br>{&nbsp; <br>&nbsp;&nbsp;&nbsp; static void Main(string[] args)&nbsp; <br>&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strDSN = Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\test.mdb;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string strSQL = SELECT * FROM employee ;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbConnection conn = new OleDbConnection(strDSN);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataAdapter cmd = new OleDbDataAdapter( strSQL, conn ); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet ds = new DataSet();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmd.Fill( ds, employee );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataTable dt = ds.Tables[0];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Field Name DataType Unique AutoIncrement AllowNull);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(==================================================================);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach( DataColumn dc in dt.Columns )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(dc.ColumnName+ , +dc.DataType + ,+dc.Unique + ,+dc.AutoIncrement+ ,+dc.AllowDBNull );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();&nbsp; <br>&nbsp;&nbsp;&nbsp; } <br>} </p>
<p><span style="COLOR: red">ASP.NET方面的</span><br><strong>十四、一个ASP.NET程序：</strong><br>&lt;%@ Page Language=C# %&gt;<br>&lt;script runat=server&gt;<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; void Button1_Click(Object sender, EventArgs e) <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label1.Text=TextBox1.Text;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&lt;/script&gt;<br>&lt;html&gt;<br>&lt;head&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&nbsp;&nbsp;&nbsp; &lt;form runat=server&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enter your name: &lt;asp:TextBox id=TextBox1 runat=server&gt;&lt;/asp:TextBox&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b&gt;&lt;asp:Label id=Label1 runat=server Width=247px&gt;&lt;/asp:Label&gt;&lt;/b&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Button id=Button1 onclick=Button1_Click runat=server Text=Submit&gt;&lt;/asp:Button&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</p>
<p><span style="COLOR: red">WinForm开发：<br></span><strong>十五、一个简单的WinForm程序：</strong><br>using System;<br>using System.Drawing;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Windows.Forms;<br>using System.Data;</p>
<p><br>public class SimpleForm : System.Windows.Forms.Form<br>{</p>
<p>&nbsp;&nbsp;&nbsp; private System.ComponentModel.Container components = null;<br>&nbsp;&nbsp;&nbsp; private System.Windows.Forms.Button button1;<br>&nbsp;&nbsp;&nbsp; private System.Windows.Forms.TextBox textBox1;<br>&nbsp;&nbsp;&nbsp; public SimpleForm()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected override void Dispose( bool disposing )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( disposing )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (components != null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; components.Dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.Dispose( disposing );<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; #region Windows Form Designer generated code<br>&nbsp;&nbsp;&nbsp; private void InitializeComponent()<br>&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.components = new System.ComponentModel.Container();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Size = new System.Drawing.Size(300,300);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Text = Form1;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.button1 = new System.Windows.Forms.Button();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.textBox1 = new System.Windows.Forms.TextBox();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.SuspendLayout(); <br>&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp; // button1<br>&nbsp;&nbsp;&nbsp; //</p>
<p>&nbsp;&nbsp;&nbsp; this.button1.Location = new System.Drawing.Point(8, 16);<br>&nbsp;&nbsp;&nbsp; this.button1.Name = button1;<br>&nbsp;&nbsp;&nbsp; this.button1.Size = new System.Drawing.Size(80, 24);<br>&nbsp;&nbsp;&nbsp; this.button1.TabIndex = 0;<br>&nbsp;&nbsp;&nbsp; this.button1.Text = button1;</p>
<p>&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp; // textBox1<br>&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp; this.textBox1.Location = new System.Drawing.Point(112, 16);<br>&nbsp;&nbsp;&nbsp; this.textBox1.Name = textBox1;<br>&nbsp;&nbsp;&nbsp; this.textBox1.Size = new System.Drawing.Size(160, 20);<br>&nbsp;&nbsp;&nbsp; this.textBox1.TabIndex = 1;<br>&nbsp;&nbsp;&nbsp; this.textBox1.Text = textBox1;<br>&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp; // Form1<br>&nbsp;&nbsp;&nbsp; //</p>
<p>&nbsp;&nbsp;&nbsp; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);<br>&nbsp;&nbsp;&nbsp; this.ClientSize = new System.Drawing.Size(292, 273);<br>&nbsp;&nbsp;&nbsp; this.Controls.AddRange(new System.Windows.Forms.Control[] {<br>&nbsp;&nbsp;&nbsp; this.textBox1,<br>&nbsp;&nbsp;&nbsp; this.button1});<br>&nbsp;&nbsp;&nbsp; this.Name = Form1;<br>&nbsp;&nbsp;&nbsp; this.Text = Form1;<br>&nbsp;&nbsp;&nbsp; this.ResumeLayout(false); </p>
<p>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; #endregion</p>
<p>&nbsp;&nbsp;&nbsp; [STAThread]<br>&nbsp;&nbsp;&nbsp; static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.Run(new SimpleForm());<br>&nbsp;&nbsp;&nbsp; } <br>}<br><strong>十六、运行时显示自己定义的图标：</strong><br>//load icon and set to form<br>System.Drawing.Icon ico = new System.Drawing.Icon(@c:\temp\app.ico);<br>this.Icon = ico;<br><strong>十七、添加组件到ListBox中：</strong><br>private void Form1_Load(object sender, System.EventArgs e)<br>{<br>&nbsp;&nbsp;&nbsp; string str = First item;<br>&nbsp;&nbsp;&nbsp; int i = 23;<br>&nbsp;&nbsp;&nbsp; float flt = 34.98f; <br>&nbsp;&nbsp;&nbsp; listBox1.Items.Add(str);<br>&nbsp;&nbsp;&nbsp; listBox1.Items.Add(i.ToString());<br>&nbsp;&nbsp;&nbsp; listBox1.Items.Add(flt.ToString());<br>&nbsp;&nbsp;&nbsp; listBox1.Items.Add(Last Item in the List Box);<br>} </p>
<p><span style="COLOR: red">网络方面的：</span><br><strong>十八、取得IP地址：</strong><br>using System;<br>using System.Net;</p>
<p>class GetIP<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPHostEntry ipEntry = Dns.GetHostByName (localhost);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPAddress [] IpAddr = ipEntry.AddressList;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; IpAddr.Length; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine (IP Address {0}: {1} , i, IpAddr.ToString ());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>十九、取得机器名称：</strong><br>using System;<br>using System.Net;</p>
<p>class GetIP<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine (Host name : {0}, Dns.GetHostName());<br>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>二十、发送邮件：</strong><br>using System;<br>using System.Web;<br>using System.Web.Mail;</p>
<p>public class TestSendMail<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // <span>Construct a new mail message <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MailMessage message = new MailMessage();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.From = <font color=#000080>from@domain.com</font>;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.To&nbsp;&nbsp; =&nbsp; <span style="COLOR: #000000"><font color=#000080>pengyun@cobainsoft.com</font>;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.Cc&nbsp;&nbsp; = ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.Bcc&nbsp; = ;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.Subject = Subject;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.Body = Content of message;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //if you want attach file with this mail, add the line below<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.Attachments.Add(new MailAttachment(c:\\attach.txt, MailEncoding.Base64));<br>&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Send the message<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SmtpMail.Send(message);&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Console.WriteLine(Message has been sent);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception ex)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Console.WriteLine(ex.Message.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; }<br>}<br><strong>二十一、根据IP地址得出机器名称：</strong><br>using System;<br>using System.Net;</p>
<p>class ResolveIP<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPHostEntry ipEntry = Dns.Resolve(172.29.9.9);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine (Host name : {0}, ipEntry.HostName);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>}</p>
<p><span style="COLOR: #ff0000">GDI+方面的：</span><br><strong>二十二、GDI+入门介绍：</strong><br>using System;<br>using System.Drawing;<br>using System.Collections;<br>using System.ComponentModel;<br>using System.Windows.Forms;<br>using System.Data;</p>
<p>public class Form1 : System.Windows.Forms.Form<br>{<br>&nbsp;&nbsp;&nbsp; private System.ComponentModel.Container components = null;</p>
<p>&nbsp;&nbsp;&nbsp; public Form1()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; protected override void Dispose( bool disposing )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( disposing )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (components != null) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; components.Dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.Dispose( disposing );<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; #region Windows Form Designer generated code<br>&nbsp;&nbsp;&nbsp; private void InitializeComponent()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ClientSize = new System.Drawing.Size(292, 273);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Name = Form1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Text = Form1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; #endregion</p>
<p>&nbsp;&nbsp;&nbsp; [STAThread]<br>&nbsp;&nbsp;&nbsp; static void Main() <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.Run(new Form1());<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Graphics g=e.Graphics;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.DrawLine(new Pen(Color.Blue),10,10,210,110);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.DrawRectangle(new Pen(Color.Red),10,10,200,100);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.DrawEllipse(new Pen(Color.Yellow),10,150,200,100);<br>&nbsp;&nbsp;&nbsp; }<br>}</p>
<p><span style="COLOR: #ff0000">XML方面的：<br></span><strong>二十三、读取XML文件：</strong><br>using System;<br>using System.Xml;&nbsp; </p>
<p>class TestReadXML<br>{<br>&nbsp;&nbsp;&nbsp; public static void Main()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlTextReader reader&nbsp; = new XmlTextReader(C:\\test.xml);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader.Read();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (reader.Read())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reader.MoveToElement();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(XmlTextReader Properties Test);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(===================);&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Read this properties of element and display them on console<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Name: + reader.Name);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Base URI: + reader.BaseURI);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Local Name: + reader.LocalName);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Attribute Count: + reader.AttributeCount.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Depth: + reader.Depth.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Line Number: + reader.LineNumber.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Node Type: + reader.NodeType.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Attribute Count: + reader.Value.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>} <br><strong>二十四、写XML文件：</strong><br>using System; <br>using System.Xml; </p>
<p>public class TestWriteXMLFile <br>{ <br>&nbsp;&nbsp;&nbsp; public static int Main(string[] args) <br>&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Creates an XML file is not exist <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlTextWriter writer = new XmlTextWriter(C:\\temp\\xmltest.xml, null); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Starts a new document <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartDocument(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Write comments <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteComment(Commentss: XmlWriter Test Program); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteProcessingInstruction(Instruction,Person Record); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Add elements to the file <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartElement(p, person, urn:person); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartElement(LastName,); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteString(Chand); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteEndElement(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteStartElement(FirstName,); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteString(Mahesh); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteEndElement(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteElementInt16(age,, 25); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Ends the document <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.WriteEndDocument(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine (Exception: {0}, e.ToString()); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0; <br>&nbsp;&nbsp;&nbsp; } <br>} </p>
<p><span style="COLOR: #ff0000">Web Service方面的：</span><br><strong>二十五、一个Web Service的小例子：<br></strong>&lt;% @WebService Language=C# Class=TestWS %&gt;</p>
<p>using System.Web.Services;</p>
<p>public class TestWS : System.Web.Services.WebService<br>{<br>&nbsp;&nbsp;&nbsp; [WebMethod()]<br>&nbsp;&nbsp;&nbsp; public string StringFromWebService()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return This is a string from web service.;<br>&nbsp;&nbsp;&nbsp; }<br>} </p>
</div><img src ="http://www.cppblog.com/mzty/aggbug/53835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2008-06-18 12:08 <a href="http://www.cppblog.com/mzty/archive/2008/06/18/53835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用ACIS + Hoops + InterOp实现CAD软件</title><link>http://www.cppblog.com/mzty/archive/2008/06/17/53702.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 17 Jun 2008 06:42:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/17/53702.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/53702.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/17/53702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/53702.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/53702.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">利用ACIS + Hoops + InterOp实现CAD软件<o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">一 ACIS<br><br><o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">3D ACIS&#174; Modeler (ACIS)是Spatial公司开发的业界领先的3D造型引擎，在全球有14个行业（包括<br>CAD/CAM/CAE、建筑、动画、造船等）的数百家开发厂商使用这个产品。ACIS为全球一些非常著名的软件开发商和制造商提供了强大的3D造型功能，他们在此基础上创建出了具有创新性和高性能的应用程序。自2000年11月成为（达索）Dassault Syst&#232;mes的全资子公司后，Spatial公司更加贴近用户，新版本的3D ACIS&#174;Modeler在产品性能以及稳定性等方面均有大幅度地提升，得到了越来越多用户的普遍称赞和认可。功能<o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">ACIS采用开放的和面向对象的C++架构，拥有强大的3D造型能力。ACIS集成了线框、曲面和实体造型的功能，支持流形和非流形拓扑，具备非常丰富的几何运算集，因此非常适用于构建具有混合造型功能的3D应用程序。ACIS不仅具备非常完善的3D建模的基本功能，而且具有很强的灵活性，满足了不同应用程序开发的需要。<br><o:p><br></o:p></p>
<table cellSpacing=4 cellPadding=0 border=0>
    <tbody>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>为了简化在ACIS上进行开发，Spatial根据开发者的预算确定许可证和收费计划。我们的商业模式允许新用户在开发的第一年，甚至是产品发布之前都无需向Spatial支付任何产品专利费用。因此我们的收入直接与用户产品上市时间和用户的成功挂钩。用户的成功才是我们的成功。<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>ACIS 核心功能<o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D 造型 <o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>将2D曲线经拉伸、旋转、扫掠等操作生成复杂的3D曲面或实体 <o:p></o:p></p>
            <ul type=disc>
                <li>高级倒角和圆角操作 <o:p></o:p>
                <li>网格曲面生成 <o:p></o:p>
                <li>阵列操作 <o:p></o:p>
                <li>实体抽壳和曲面加厚 <o:p></o:p>
                <li>曲线、曲面和实体的交互式弯曲、扭曲、延展、变形 <o:p></o:p>
                <li>曲线、曲面、实体的交、并、差运算 <o:p></o:p>
                <li>放样操作 <o:p></o:p>
                <li>模型中拔模面生成、曲面等距和移动<o:p></o:p> </li>
            </ul>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D 模型管理 <o:p></o:p></p>
            <ul type=disc>
                <li>在模型的任何级别关联用户自定义的数据 <o:p></o:p>
                <li>跟踪几何和拓扑改变 <o:p></o:p>
                <li>计算质量和体积 <o:p></o:p>
                <li>使用单元拓扑表示实体模型子域 <o:p></o:p>
                <li>独立于历史流的无穷次的撤销（undo）和恢复（redo）操作<o:p></o:p> </li>
            </ul>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D 模型显示 <o:p></o:p></p>
            <ul type=disc>
                <li>将曲面几何离散成多边形网格表示 <o:p></o:p>
                <li>利用可选可变形造型组件创建高级曲面 <o:p></o:p>
                <li>利用可选PHL V5 组件生成带隐藏线消除的精确2D工程图 <o:p></o:p>
                <li>利用Spatial提供的Tech Soft America的HOOPS/3dAF以及HOOPS/ACIS Bridge等产品搭建图形交互应用程序<o:p></o:p> </li>
            </ul>
            </td>
        </tr>
    </tbody>
</table>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left><br><br>二HOOPS<br><o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><br>HOOPS 3D Application Framework (HOOPS/3dAF)是由Tech Soft America公司开发并由Spatial再次销售的产<br>品，该产品为当今世界上领先的3D应用程序提供了核心的图形架构和图形功能，这些3D应用程序涉及CAD/CAM/CAE、<br>工程、可视化和仿真等领域。有了HOOPS/3dAF，用户就站在一个高起点上，能够快速和有效地开发和维护高性能的用户应用程序。用户通过将HOOPS/3dAF集成到相应的软件开发中，可以更好地管理开发成本、优化资源和缩短产品上市时间。<br><o:p></o:p></p>
<h2><br>快速和灵活的开发<o:p></o:p></h2>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">HOOPS/3dAF是一个成熟、健壮的应用程序框架，而且也在不断地进行更新以满足日益变化的软件市场需求。该组件包不仅拥有不寻常的图形功能，而且使用非常灵活，加速了应用程序的开发和产品上市。HOOPS/3dAF是一个可扩展的、模块化和开放的架构，提供了非常全面的应用程序开发接口（API）供用户选用或根据用户特定需求进行定制。另外，HOOPS/3dAF组件包还提供了基于可读源代码的示例应用程序，从而可以帮助用户加快开发速度。 <o:p></o:p></p>
<h3>多种平台支持和开发工具集<o:p></o:p></h3>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">HOOPS/3dAF 工具包可以工作在多种平台上，不仅支持各种32位操作系统上，而且也可以允许在多种64位操作系统上工作。该工具包所支持的主要平台包括Windows、UNIX和Linux。HOOPS/3dAF和公共用户接口工具集可以创建桌面应用程序，或 根据用户要求做成一个ActiveX控件或多平台的网络浏览器的插件。HOOPS/3dAF组件包支持的编程语言包括Python、Java（对选定组件）、C、C++和FORTRAN等。 <o:p></o:p></p>
<h3>性能和高级功能<o:p></o:p></h3>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">HOOPS/3dAF不仅仅可以加快产品上市，它还为应用程序的开发提供了高级的2D和3D图形功能。HOOPS/3dAF提供了对Unicode字体的全面支持、精确的矢量图硬拷贝、完善的选择算法和高级颜色插值能力等。该产品与几何造型引擎紧密集成，能够开发出具有丰富图形功能的3D造型应用程序序。HOOPS/3dAF具备大模型显示的能力，为此，即使对于非常复杂的模型数据，用户也可以实现实时渲染和便捷的人机交互。 <o:p></o:p></p>
<h3>HOOPS/3dAF的集成组件<o:p></o:p></h3>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">HOOPS 3D Graphics System 是一个特色鲜明的场景图应用程序接口，封装了高度优化的数据结构和用于2D和3D图形数据的创建、编辑、存储、操作、查询和渲染的算法。<br><br>HOOPS MVO Class Library 是一系列独立于平台和GUI的C++类，这些类是构造一般3D应用程序功能（如模型的创建、显示、动画和操作等）的基础。<br><br>HOOPS Stream Toolkit 是一系列独立于平台和GUI的C++类，这些类使应用程序可以在基于本地网或Internet创建和流化处理高度压缩的数据文件（这些数据文件可以是2D、3D数据，也可以是用户自定义数据）。HOOPS Stream Toolkit组件既可以和HOOPS/3dAF一起使用，也可以单独使用。<br><br>HOOPS Graphical User Interface 是一系列连接不同GUI工具包的集成模块，可以连接以下GUI： <o:p></o:p></p>
<ul type=disc>
    <li>Microsoft Foundation Classes (MFC) for Windows <o:p></o:p>
    <li>ActiveX and ATL Control Classes for Windows <o:p></o:p>
    <li>Netscape Plug-in Classes for Windows and UNIX <o:p></o:p>
    <li>Motif Toolkit for UNIX <o:p></o:p>
    <li>Qt Toolkit for cross-platform GUI development.<o:p></o:p> </li>
</ul>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">HOOPS Geometric Modeler Bridges 与几何造型引擎（如3D ACIS&#174; Modeler）紧密集成，大大简化了基于实体和基于曲面的应用程序的开发。<br><br>HOOPS Reference Applications 以源代码的方式提供了丰富的例子，详细说明了HOOPS/3dAF的基本架构和使用方法，以及如何使用HOOPS/3dAF成功开发应用程序。<br><br>HOOPS 基本图元和属性支持 包括： <o:p></o:p></p>
<ul type=disc>
    <li>几何：Images, Unicode Text, Points, Lines, Polygons, Polylines, Polycylinders,NURBS curves, NURBS surfaces, Arcs, Ellipses, Circles, Tristrips, Trifans,Indexed Facesets, Cutting Planes, Capping Geometry <o:p></o:p>
    <li>几何属性：Color, Transparency, Textures, Visibility, Patterns (Facet,edge 和 Line), Color Ramps, Lighting Interpolation, Selectability <o:p></o:p>
    <li>渲染属性：Shaded, Analytic Hidden Line, Wireframe,Color Maps, Various Color Ramping Algorithms, Window Background Coloring<o:p></o:p> </li>
</ul>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left><o:p>&nbsp;</o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left><o:p>&nbsp;</o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>三 3D InterOp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作为3D技术的领导者，Spatial意识到实现不同格式数据（包括原始格式数据和非原始格式数据）有效转换的必要性。为此，Spatial开发了3D InterOp数据转换组件，开发者们可以很容易地将我们提供的先进的3D数据转换技术集成到各自的3D软件产品中，这些软件产品可以是CAD/CAM/CAE应用程序、数据管理系统（如PDM、EDM和MES等）、协同系统以及可视化解决方案等<o:p></o:p></p>
<table cellSpacing=4 cellPadding=0 border=0>
    <tbody>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top colSpan=4>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>Spatial的InterOp转换器使用户无需大量编程或购买昂贵的用于打开某种格式数据的原始软件。通过使用我们的InterOp 转换器，用户可以将更多的精力放在具有核心竞争力和高附加值技术的开发上，同时又会减少资金的投入，缩短开发周期，降低维护成本，加快产品上市。 <o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>透明、准确的数据转换<o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>Spatial全面的InterOp组件包能够透明地实现实体、曲面和线框数据的直接或间接地转换（包括采用中间格式或原始库的方式），可以转换的3D数据格式包括CATIA V5, CATIA V4, IGES, STEP, VDA-FS, Pro/ENGINEER (Pro/E), Parasolid (PS), Unigraphics (UG), SolidWorks, Inventor, 和ACIS&#174;。每一种转换器都经过精细微调，并经常更新，确保3D数据转换的准确。每周，我们的转换器都将经历225,000多个测试，以保证转换质量。 <o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>最新版本InterOp(R18SP1)支持的格式 <o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>产品名称<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>用途<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读入版本支持<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>写出版本支持<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS CATIA V4 Reader/Writer <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>实现ACIS 文件和CATIA V4 文件之间的双向转换 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>4.1.9～4.2.4 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>4.2.1～4.2.4 <o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS CATIA V5 Reader <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取CATIA V5 文件到基于ACIS的应用程序中 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>R2～R18<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_1"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS CATIA V5 Manufacturing Option <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取CATIA V5 文件中的加工信息，PMI数据和孔特征到基于ACIS的应用程序中 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>R2～R18<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_2"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS CATIA V5 Writer <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>将基于ACIS的应用程序生成的模型文件写成CATIA V5文件 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>R6～R18<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_3"><o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS CATIA V5 Reader/Writer <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>实现ACIS 文件和CATIA V5 文件之间的双向转换 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>R2～R18<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_4"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>R6～R18<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_5"><o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS IGES Reader/Writer <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>实现ACIS 文件和IGES 格式文件之间的双向转换 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>～5.3 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>～5.3 <o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS Inventor Reader <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取Inventor文件到基于ACIS的应用程序中 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>6～12<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_6"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS Parasolid Reader/Writer* <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>实现ACIS 文件和Parasolid 文件之间的双向转换<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>10.0～19.0<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_7"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>12.0～19.0<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_8"><o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS Pro/E Reader <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取Pro/Engineer 文件到基于ACIS的应用程序中 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>16～Wildfire3<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS Pro/E Manufacturing Option<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取Pro/Engineer 文件中的加工信息、PMI数据和孔特征到基于ACIS的应用程序中 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>16～Wildfire3<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS SolidWorks Reader*<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取SolidWorks文件到基于ACIS的应用程序中<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>98～2008<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_9"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS STEP Reader/Writer <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>实现ACIS 文件和STEP 格式文件之间的双向转换 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>AP203, AP214**<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>AP203, AP214**<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS Unigraphics Reader*<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取 Unigraphics文件到基于ACIS的应用程序中<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>V11～18 NX1.0-5.0 <img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_10"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS Unigraphics Manufacturing Option <img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_11"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>读取UG文件中的加工信息，PMI数据和孔特征到基于ACIS的应用程序中 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>NX2.0,4.0-5.0<img height=13 alt=http://www.spatial.com.cn/images/new.gif src="file:///C:/DOCUME~1/Zhuxia/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.gif" width=31 v:shapes="Picture_x0020_12"><o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>&#215;<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=140>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>3D InterOp ACIS VDA-FS Reader/Writer <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=165>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>实现 ACIS 文件和VDA-FS 文件之间的双向转换 <o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=99>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>～2.0<o:p></o:p></p>
            </td>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top width=96>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>2.0<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top colSpan=4>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>* 　表示该转换接口需要从TSA或其他Parasolid供应商处获得Parasolid的授权<br>**　表示AP214暂时只支持几何数据读写<o:p></o:p></p>
            </td>
        </tr>
        <tr>
            <td style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" vAlign=top colSpan=4>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>出众的CATIA V5读写能力<o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>CATIA V5 在是工业界发展最快且拥有最大装机量的软件产品之一。现在Spatial提供了读写CATIA V5格式的工具InterOp CATIA V5 Reader和InterOp CATIA V5 Writer，该工具的开发直接采用了由CATIA V5开发商（达索）Dassault Syst&#232;mes提供的原装库，因此在转换精度上首屈一指。 <o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>随需而定的可扩展架构<o:p></o:p></p>
            <p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left>Spatial的3D InterOp Exchange组件和3D InterOp Translators组件合在一起旨在为3D应用程序开发提供易于扩展的数据转换平台。InterOp Translators可以直接加载到可即插即用的3D InterOp Exchange架构中，当用户的需求发生改变时，通过便捷的API来增强数据转换能力。<o:p></o:p></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">四 参考<o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><a href="http://www.techsoft3d.com/">http://www.techsoft3d.com/</a><o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><a href="http://www.spatial.com/">http://www.spatial.com</a><o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><a href="http://www.spatial.com.cn/">http://www.spatial.com.cn</a><o:p></o:p></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></p><img src ="http://www.cppblog.com/mzty/aggbug/53702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2008-06-17 14:42 <a href="http://www.cppblog.com/mzty/archive/2008/06/17/53702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AutoCAD ObjectARX和RealDWG资料</title><link>http://www.cppblog.com/mzty/archive/2008/06/17/53652.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 17 Jun 2008 01:05:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/17/53652.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/53652.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/17/53652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/53652.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/53652.html</trackback:ping><description><![CDATA[<br>总结：<br><br>AutoCAD ObjectARX：免费的AutoCAD二次开发SDK（<a href="http://usa.autodesk.com/adsk/servlet/item?siteID=123112&amp;id=785550">http://usa.autodesk.com/adsk/servlet/item?siteID=123112&amp;id=785550</a>）<br>RealDWG： 提供DWG图纸的读写，不需要AutoCAD的安装的支持，收费的！<br><br>blog：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cadkicks.com/"><u><font color=#810081>http://www.cadkicks.com/</font></u></a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.online-proxy.info/">http://www.online-proxy.info/</a>&nbsp;&nbsp;&nbsp; +&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://through-the-interface.typepad.com/">http://through-the-interface.typepad.com/</a><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.online-proxy.info/">http://www.online-proxy.info/</a> + <a href="http://arxdummies.blogspot.com/">http://arxdummies.blogspot.com</a><br><br>website：<a href="http://www.objectarx.net/">http://www.objectarx.net/</a><br><br><br>RealDWG online：<a href="http://download.autodesk.com/media/adn/AdskCompTech.html">http://download.autodesk.com/media/adn/AdskCompTech.html</a><br><br>RealDWG download：<a href="http://download.autodesk.com/media/adn/DevTV-Introduction-to-RealDWG-Programming.zip">http://download.autodesk.com/media/adn/DevTV-Introduction-to-RealDWG-Programming.zip</a><br><br>AutoCAD ObjectARX ：<a href="http://download.autodesk.com/media/adn/DevTV_Introduction_to_AutoCAD_NET_Programming.zip">http://download.autodesk.com/media/adn/DevTV_Introduction_to_AutoCAD_NET_Programming.zip</a> <br><br>my ppts and samples：<br><br>其他：<br><br><br><br><img src ="http://www.cppblog.com/mzty/aggbug/53652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2008-06-17 09:05 <a href="http://www.cppblog.com/mzty/archive/2008/06/17/53652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++和CSharp增加AutoCAD的菜单menu</title><link>http://www.cppblog.com/mzty/archive/2008/06/17/53651.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 17 Jun 2008 00:55:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/17/53651.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/53651.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/17/53651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/53651.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/53651.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一 c++ COM接口voidaddMenuThroughCom(){&nbsp;&nbsp;&nbsp;&nbsp;AutoCAD::IAcadApplication&nbsp;*pAcad;&nbsp;&nbsp;&nbsp;&nbsp;AutoCAD::IAcadMenuBar&nbsp;*pMenuBar;&nbsp;&nbsp;&nbsp;&nbsp;AutoCAD::IAcadMe...&nbsp;&nbsp;<a href='http://www.cppblog.com/mzty/archive/2008/06/17/53651.html'>阅读全文</a><img src ="http://www.cppblog.com/mzty/aggbug/53651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mzty/" target="_blank">梦在天涯</a> 2008-06-17 08:55 <a href="http://www.cppblog.com/mzty/archive/2008/06/17/53651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSharp启动AutoCAD</title><link>http://www.cppblog.com/mzty/archive/2008/06/17/53649.html</link><dc:creator>梦在天涯</dc:creator><author>梦在天涯</author><pubDate>Tue, 17 Jun 2008 00:46:00 GMT</pubDate><guid>http://www.cppblog.com/mzty/archive/2008/06/17/53649.html</guid><wfw:comment>http://www.cppblog.com/mzty/comments/53649.html</wfw:comment><comments>http://www.cppblog.com/mzty/archive/2008/06/17/53649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mzty/comments/commentRss/53649.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mzty/services/trackbacks/53649.html</trackback:ping><description><![CDATA[<br>一 我们可以通过AutoCAD安装以后提供的COM接口启动AutoCAD。<br><br>COM组件为： <font face=Calibri><font size=7><br>AutoCAD/</font><span style="FONT-SIZE: 30pt; COLOR: black; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-color-index: 1; mso-font-kerning: 12.0pt">ObjectDBX</span></font><span style="FONT-SIZE: 30pt; COLOR: black; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-color-index: 1; mso-font-kerning: 12.0pt"> Common 17.1 Type Library (</span><span style="FONT-SIZE: 30pt; COLOR: red; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt">Autodesk.AutoCAD.Interop.Common.dll</span><span style="FONT-SIZE: 30pt; COLOR: black; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-color-index: 1; mso-font-kerning: 12.0pt">). <br><span style="FONT-SIZE: 30pt; COLOR: black; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-color-index: 1; mso-font-kerning: 12.0pt">AutoCAD 2009 Type Library (<span style="FONT-SIZE: 30pt; COLOR: red; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-font-kerning: 12.0pt">Autodesk.AutoCAD.Interop.dll</span><span style="FONT-SIZE: 30pt; COLOR: black; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-color-index: 1; mso-font-kerning: 12.0pt">)</span>&nbsp;</span></span><span style="FONT-SIZE: 30pt; COLOR: black; FONT-FAMILY: Calibri; language: en-US; mso-ascii-font-family: Calibri; mso-fareast-font-family: +mn-ea; mso-bidi-font-family: +mn-cs; mso-color-index: 1; mso-font-kerning: 12.0pt">&nbsp;&nbsp;&nbsp;</span><br><br>二 方法一<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Way1()<br><img id=Codehighlighter1_42_979_Open_Image onclick="this.style.display='none'; Codehighlighter1_42_979_Open_Text.style.display='none'; Codehighlighter1_42_979_Closed_Image.style.display='inline'; Codehighlighter1_42_979_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_42_979_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_42_979_Closed_Text.style.display='none'; Codehighlighter1_42_979_Open_Image.style.display='inline'; Codehighlighter1_42_979_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_42_979_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_42_979_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;progID&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">AutoCAD.Application.17.1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AcadApplication&nbsp;acApp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_177_266_Open_Image onclick="this.style.display='none'; Codehighlighter1_177_266_Open_Text.style.display='none'; Codehighlighter1_177_266_Closed_Image.style.display='inline'; Codehighlighter1_177_266_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_177_266_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_177_266_Closed_Text.style.display='none'; Codehighlighter1_177_266_Open_Image.style.display='inline'; Codehighlighter1_177_266_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_177_266_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_177_266_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acApp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(AcadApplication)Marshal.GetActiveObject(progID);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_298_665_Open_Image onclick="this.style.display='none'; Codehighlighter1_298_665_Open_Text.style.display='none'; Codehighlighter1_298_665_Closed_Image.style.display='inline'; Codehighlighter1_298_665_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_298_665_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_298_665_Closed_Text.style.display='none'; Codehighlighter1_298_665_Open_Image.style.display='inline'; Codehighlighter1_298_665_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_298_665_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_298_665_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_336_504_Open_Image onclick="this.style.display='none'; Codehighlighter1_336_504_Open_Text.style.display='none'; Codehighlighter1_336_504_Closed_Image.style.display='inline'; Codehighlighter1_336_504_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_336_504_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_336_504_Closed_Text.style.display='none'; Codehighlighter1_336_504_Open_Image.style.display='inline'; Codehighlighter1_336_504_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_336_504_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_336_504_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;acType&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Type.GetTypeFromProgID(progID);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acApp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(AcadApplication)Activator.CreateInstance(acType,</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_544_651_Open_Image onclick="this.style.display='none'; Codehighlighter1_544_651_Open_Text.style.display='none'; Codehighlighter1_544_651_Closed_Image.style.display='inline'; Codehighlighter1_544_651_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_544_651_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_544_651_Closed_Text.style.display='none'; Codehighlighter1_544_651_Open_Image.style.display='inline'; Codehighlighter1_544_651_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_544_651_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_544_651_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Cannot&nbsp;create&nbsp;object&nbsp;of&nbsp;type&nbsp;\</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">&nbsp;+progID&nbsp;+&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(acApp&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_710_961_Open_Image onclick="this.style.display='none'; Codehighlighter1_710_961_Open_Text.style.display='none'; Codehighlighter1_710_961_Closed_Image.style.display='inline'; Codehighlighter1_710_961_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_710_961_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_710_961_Closed_Text.style.display='none'; Codehighlighter1_710_961_Open_Image.style.display='inline'; Codehighlighter1_710_961_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_710_961_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_710_961_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;By&nbsp;the&nbsp;time&nbsp;this&nbsp;is&nbsp;reached&nbsp;AutoCAD&nbsp;is&nbsp;fully<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;functional&nbsp;and&nbsp;can&nbsp;be&nbsp;interacted&nbsp;with&nbsp;through&nbsp;code</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acApp.Visible&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acApp.ActiveDocument.SendCommand(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">_MYCOMMAND&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>三&nbsp;方法二<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Way2()<br><img id=Codehighlighter1_42_2474_Open_Image onclick="this.style.display='none'; Codehighlighter1_42_2474_Open_Text.style.display='none'; Codehighlighter1_42_2474_Closed_Image.style.display='inline'; Codehighlighter1_42_2474_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_42_2474_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_42_2474_Closed_Text.style.display='none'; Codehighlighter1_42_2474_Open_Image.style.display='inline'; Codehighlighter1_42_2474_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_42_2474_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_42_2474_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;progID&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">AutoCAD.Application.17.1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;exePath&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">@"</span><span style="COLOR: #000000">E:\Program&nbsp;Files\Autodesk\ACADM&nbsp;2009\acad.exe</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AcadApplication&nbsp;acApp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Let's&nbsp;first&nbsp;check&nbsp;we&nbsp;don't&nbsp;have&nbsp;AutoCAD&nbsp;already&nbsp;running</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_337_424_Open_Image onclick="this.style.display='none'; Codehighlighter1_337_424_Open_Text.style.display='none'; Codehighlighter1_337_424_Closed_Image.style.display='inline'; Codehighlighter1_337_424_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_337_424_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_337_424_Closed_Text.style.display='none'; Codehighlighter1_337_424_Open_Image.style.display='inline'; Codehighlighter1_337_424_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_337_424_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_337_424_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acApp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(AcadApplication)Marshal.GetActiveObject(progID);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_444_446_Open_Image onclick="this.style.display='none'; Codehighlighter1_444_446_Open_Text.style.display='none'; Codehighlighter1_444_446_Closed_Image.style.display='inline'; Codehighlighter1_444_446_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_444_446_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_444_446_Closed_Text.style.display='none'; Codehighlighter1_444_446_Open_Image.style.display='inline'; Codehighlighter1_444_446_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_444_446_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_444_446_Open_Text><span style="COLOR: #000000">{&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(acApp&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_491_584_Open_Image onclick="this.style.display='none'; Codehighlighter1_491_584_Open_Text.style.display='none'; Codehighlighter1_491_584_Closed_Image.style.display='inline'; Codehighlighter1_491_584_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_491_584_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_491_584_Closed_Text.style.display='none'; Codehighlighter1_491_584_Open_Image.style.display='inline'; Codehighlighter1_491_584_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_491_584_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_491_584_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">An&nbsp;instance&nbsp;of&nbsp;AutoCAD&nbsp;is&nbsp;already&nbsp;running.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_615_2300_Open_Image onclick="this.style.display='none'; Codehighlighter1_615_2300_Open_Text.style.display='none'; Codehighlighter1_615_2300_Closed_Image.style.display='inline'; Codehighlighter1_615_2300_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_615_2300_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_615_2300_Closed_Text.style.display='none'; Codehighlighter1_615_2300_Open_Image.style.display='inline'; Codehighlighter1_615_2300_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_615_2300_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_615_2300_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_653_2116_Open_Image onclick="this.style.display='none'; Codehighlighter1_653_2116_Open_Text.style.display='none'; Codehighlighter1_653_2116_Closed_Image.style.display='inline'; Codehighlighter1_653_2116_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_653_2116_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_653_2116_Closed_Text.style.display='none'; Codehighlighter1_653_2116_Open_Image.style.display='inline'; Codehighlighter1_653_2116_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_653_2116_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_653_2116_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Use&nbsp;classes&nbsp;from&nbsp;the&nbsp;System.Diagnostics&nbsp;namespace<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;to&nbsp;launch&nbsp;our&nbsp;AutoCAD&nbsp;process&nbsp;with&nbsp;command-line<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;options</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessStartInfo&nbsp;psi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ProcessStartInfo(exePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/p&nbsp;myprofile</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;psi.WorkingDirectory&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">@"</span><span style="COLOR: #000000">c:\temp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;pr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Process.Start(psi);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Wait&nbsp;for&nbsp;AutoCAD&nbsp;to&nbsp;be&nbsp;ready&nbsp;for&nbsp;input<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;This&nbsp;doesn't&nbsp;wait&nbsp;until&nbsp;AutoCAD&nbsp;is&nbsp;ready<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;to&nbsp;receive&nbsp;COM&nbsp;requests,&nbsp;it&nbsp;seems</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pr.WaitForInputIdle();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Connect&nbsp;to&nbsp;our&nbsp;process&nbsp;using&nbsp;COM<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;We're&nbsp;going&nbsp;to&nbsp;loop&nbsp;infinitely&nbsp;until&nbsp;we&nbsp;get&nbsp;the<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;AutoCAD&nbsp;object.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;A&nbsp;little&nbsp;risky,&nbsp;unless&nbsp;we&nbsp;implement&nbsp;a&nbsp;timeout<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;mechanism&nbsp;or&nbsp;let&nbsp;the&nbsp;user&nbsp;cancel</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n