<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://interop123.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang=""><title type="html">《精通.NET互操作：P/Invoke、C++ Interop和COM Interop》官方博客</title><subtitle type="html" /><id>http://interop123.com/blogs/professional_dotnet_interop/atom.aspx</id><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/default.aspx" /><link rel="self" type="application/atom+xml" href="http://interop123.com/blogs/professional_dotnet_interop/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61120.2">Community Server</generator><updated>2009-04-24T15:19:00Z</updated><entry><title>一篇用C++/CLI讲述在托管委托（delegate）和非托管函数指针之间相互转化的文章</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/10/27/c-cli-delegate.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/10/27/c-cli-delegate.aspx</id><published>2009-10-27T05:54:00Z</published><updated>2009-10-27T05:54:00Z</updated><content type="html">我们的图书《精通.NET互操作》出版有一个月的时间了，有一些朋友会想我请教一些问题。并反馈说，没有专门详细地介绍有关用委托实现函数指针、回调函数的章节。我觉得大家的建议很有道理。现在这里做个记号，挖个坑。

之所以推荐这篇文章是有两个原因：

1. 它介绍了在托管委托和非托管函数指针，回调函数之间相互转换的方法

2. 它使用C++/CLI实现了对整个问题的描述。因为网络上有关C++ Interop的相关资料很少。所以值得一看

Marshalling native function pointers

我读后，发现作者主要强调了以下几点：

1.在定义托管委托（delegate）的时候，可以使用UnmanagedFunctionPointer属性（Attribute）指定CallingConvention，以使其托管签名与非托管函数定义相匹配。

2.使用System.Runtime.InteropServices.Marshal类的方法实现托管委托和非托管函数指针之间的封送。

    * Marshal.GetFunctionPointerForDelegate方法，用于将托管委托转化为非托管代码可以调用的方法。
    * Marshal.GetDelegateForFunctionPointer方法，用于将非托管函数转化为托管委托。

3.垃圾回收器（GC）对封送委托到非托管代码时的影响。由于委托（delegate）和由委托转化成的函数指针处于不同的堆上。所以一定要保证非托管代码执行过程中，托管对象没有被回收。

希望大家觉得有用。
&lt;img src="http://interop123.com/aggbug.aspx?PostID=43" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /><category term="delegate" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/delegate/default.aspx" /><category term="委托" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_D4595862_/default.aspx" /><category term="垃圾回收" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_83573E57DE563665_/default.aspx" /><category term="GC" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/GC/default.aspx" /></entry><entry><title>《精通.NET互操作：P/Invoke、C++ Interop和COM Interop》——简介，目标，读者人群</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/26/ProfessionalInteropIntroGoalReader.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/26/ProfessionalInteropIntroGoalReader.aspx</id><published>2009-04-26T07:03:00Z</published><updated>2009-04-26T07:03:00Z</updated><content type="html">&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;自从&lt;/SPAN&gt;&lt;SPAN&gt;2000&lt;/SPAN&gt;&lt;SPAN&gt;年微软&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台问世以来，全球已经有超过四百万开发人员使用&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台进行软件开发。对于&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;来说，这无疑是一个巨大的成功。这不仅仅体现在商业上的成功，其核心价值在于&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;为基于微软&lt;/SPAN&gt;&lt;SPAN&gt;Windows&lt;/SPAN&gt;&lt;SPAN&gt;平台的软件开发过程提供了一种新颖、高效的编程模型。在该模型下，开发人员能够更容易地将精力集中在其特定的开发情景中，而不用过多地关注消息循环、窗口过程等操作系统底层的处理。目前，基于&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台的技术和开发环境正处于飞速发展的时期。在本书即将出版之际，微软已经正式发布了&lt;/SPAN&gt;&lt;SPAN&gt;.NET Framework 4.0&lt;/SPAN&gt;&lt;SPAN&gt;所支持的新特性以及预览版。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;另一方面，由于历史的原因，在&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;出现之前，开发人员已经编写了大量经过严格测试且可复用的非托管代码。它们以&lt;/SPAN&gt;&lt;SPAN&gt;C&lt;/SPAN&gt;&lt;SPAN&gt;库函数、&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;类库以及&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件的形式存在于诸多应用程序和框架之中，并承担着非常重要的角色。但由于在托管和非托管对象模型之间，数据类型、方法签名和错误处理机制都存在很大差异，从而使两种编程模型之间的代码互用和移植更加复杂。因此，在很长一段时期内，开发人员必须面对&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;与久经考验的“遗留代码（&lt;/SPAN&gt;&lt;SPAN&gt;legacy code&lt;/SPAN&gt;&lt;SPAN&gt;）”长期并存的局面。当然，开发人员可以选择&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台，使用托管代码重写这些已有的非托管代码。但这个重写的过程势必会枯燥无味，而且项目经理也不会在项目进度中安排大量的时间以进行重写代码的工作。更让开发人员感到尴尬的是，很多时候，即使花了很大代价对非托管代码进行了重写，但还是不能保证重写后的托管代码像那些久经考验的非托管代码一样正常或高效地工作。因此在很多情况下，重用已有非托管代码就成了最经济、可行的解决方案。以下是这些情况中的一些典型案例。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;开发人员所在的部门一直使用第三方提供的&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件为产品的核心功能提供支持。而新业务要求使用&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台。这就出现了一个问题。一方面公司已经为这些&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件投入了大量的资金，不会轻易放弃这些组件。另一方面开发部门使用&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台进行开发，无法直接使用这些&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件。因此，有效地在&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台中重用这些&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件就成为产品成功的关键要素。&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;虽然&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台为开发人员提供了强大的框架类库（&lt;/SPAN&gt;&lt;SPAN&gt;Framework Class Library&lt;/SPAN&gt;&lt;SPAN&gt;，简称&lt;/SPAN&gt;&lt;SPAN&gt;FCL&lt;/SPAN&gt;&lt;SPAN&gt;），但它并没有包含基于&lt;/SPAN&gt;&lt;SPAN&gt;Windows&lt;/SPAN&gt;&lt;SPAN&gt;开发过程所涉及到的全部&lt;/SPAN&gt;&lt;SPAN&gt;Windows API&lt;/SPAN&gt;&lt;SPAN&gt;。因此如果开发人员希望使用那些&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台尚未支持的编程接口，则需要找到在&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;中调用&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;的方法。&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;在产品中可能会存在一些核心算法模块，它们对产品的质量有很大的影响。因此测试人员对这类模块的要求有时会十分严苛。开发人员不但要保证模块能够在规定时间内完成计算任务，还要保证它在规定的内存空间内得以实现。在这种情况下，使用&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;等非托管语言编写的模块与使用&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;编写的程序集相比，在性能上会有较大的提升空间。&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;可见在不同的开发情境中，开发人员会主动或被动地在开发过程中引入托管代码与非托管代码共存的情况。幸运地是，公共语言运行库（&lt;/SPAN&gt;&lt;SPAN&gt;Common Language Runtime&lt;/SPAN&gt;&lt;SPAN&gt;，简称&lt;/SPAN&gt;&lt;SPAN&gt;CLR&lt;/SPAN&gt;&lt;SPAN&gt;）提供了一系列能够使托管代码与非托管代码进行交互操作的解决方案。其中主要包含&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;类互操作技术，如图&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;所示。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;平台调用技术（&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;）：主要用于处理在托管代码中调用&lt;/SPAN&gt;&lt;SPAN&gt;C&lt;/SPAN&gt;&lt;SPAN&gt;库函数及&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;函数等非托管函数的情形。&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;：适用于在托管代码与&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;类库、核心算法库之间进行高效、灵活的互操作过程。一方面托管代码可以通过包装类机制使用&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;类库，另一方面非托管代码可以通过包装模板机制使用托管对象。&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;：该技术用于处理托管代码与&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;之间的交互过程。托管代码通过运行库可调用包装（&lt;/SPAN&gt;&lt;SPAN&gt;RCW&lt;/SPAN&gt;&lt;SPAN&gt;）使用非托管&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件。反过来，非托管&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;客户端可以通过&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;可调用包装（&lt;/SPAN&gt;&lt;SPAN&gt;CCW&lt;/SPAN&gt;&lt;SPAN&gt;）使用托管程序集。&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;DIV style="DISPLAY:block;MARGIN-LEFT:auto;MARGIN-RIGHT:auto;TEXT-ALIGN:center;"&gt;&lt;IMG alt="" src="http://sites.google.com/site/netinterop/_/rsrc/1238744044031/professional_dot_net_interoperability---PInvoke_Cpp-Interop_COM-Interop/book_introduction/NET%E6%8F%90%E4%BE%9B%E7%9A%843%E7%B1%BB%E4%B8%BB%E8%A6%81%E4%BA%92%E6%93%8D%E4%BD%9C%E6%8A%80%E6%9C%AF.jpg" border=0&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&amp;nbsp; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="TEXT-ALIGN:center;" align=center&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN:center;" align=center&gt;&lt;SPAN&gt;图&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;提供的&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;类主要互操作技术&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;由于不同的非托管对象，其设计和运行机制等存在很多差异。因此，托管代码与这些非托管对象进行交互操作时，在数据类型处理、错误处理机制、创建和销毁对象的规则以及互操作方法上，都需要根据不同的情况，分别进行不同的处理，从而导致互操作技术复杂多变且不易掌握。本书凝聚了作者多年使用互操作技术的经验，以严禁的态度和独特的内容组织结构与行文思路，系统且全面地介绍了在面对上述&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;种典型的开发情境时，如何在数据封送、性能优化和代码调试等环节均采用最佳实践。本书不但能够帮助读者快速找到解决问题的方法，还能帮助读者深入理解互操作技术的工作原理，并从更高的角度领悟互操作技术的本质和精髓。&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1&gt;&lt;A class="" name=TOC-2&gt;&lt;/A&gt;&lt;SPAN&gt;本书的内容及组织结构&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;在托管代码与非托管代码之间进行互操作，主要有&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;种技术。因此本书将分为&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;个部分，共&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;个章节逐一对各项互操作技术进行详细介绍。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;平台调用&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本书的第一部分包含第&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;、&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;、&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;章，重点介绍平台调用（&lt;/SPAN&gt;&lt;SPAN&gt;Platform Invocation Services&lt;/SPAN&gt;&lt;SPAN&gt;，简称&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;或&lt;/SPAN&gt;&lt;SPAN&gt;PInvoke&lt;/SPAN&gt;&lt;SPAN&gt;）技术。平台调用技术主要用于解决在托管代码中调用非托管程序设计语言编写的&lt;/SPAN&gt;&lt;SPAN&gt;flat API&lt;/SPAN&gt;&lt;SPAN&gt;（如&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;、&lt;/SPAN&gt;&lt;SPAN&gt;C/C++&lt;/SPAN&gt;&lt;SPAN&gt;风格的&lt;/SPAN&gt;&lt;SPAN&gt;API&lt;/SPAN&gt;&lt;SPAN&gt;等）的问题，其基本原理是在托管代码中重新声明一个与使用非托管语言编写的函数相等价的函数，并设置平台调用必需的一些属性及其字段，从而实现在托管代码中调用非托管函数。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本书的第二部分由第&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;SPAN&gt;章构成，主要介绍&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;（在早期的&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;版本中，又被称为&lt;/SPAN&gt;&lt;SPAN&gt;IJW&lt;/SPAN&gt;&lt;SPAN&gt;，即&lt;/SPAN&gt;&lt;SPAN&gt;It Just Works&lt;/SPAN&gt;&lt;SPAN&gt;）技术。&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;技术专门用于解决托管代码与&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;编写的非托管代码之间的互操作问题。使用&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;，无需在托管代码中进行任何特殊声明或设置平台调用所需的属性，即可在托管代码中直接使用&lt;/SPAN&gt;&lt;SPAN&gt;flat API&lt;/SPAN&gt;&lt;SPAN&gt;及&lt;/SPAN&gt;&lt;SPAN&gt;COM API&lt;/SPAN&gt;&lt;SPAN&gt;。开发人员甚至可以将托管代码和非托管代码定义在同一源文件中。因此，与&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;相比，&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;的功能显得更加强大，但使用&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;要求开发人员对托管代码和非托管代码都具备深入的理解，才能避免诸如因数据封送错误、内存泄漏问题等引发的程序错误或异常。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本书的第三部分包含第&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;SPAN&gt;、&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;两章。分别介绍了使用&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;解决在托管代码中调用&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件，以及在&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;中调用托管类型的问题。与平台调用技术非常相似，&lt;/SPAN&gt;&lt;SPAN&gt;CLR&lt;/SPAN&gt;&lt;SPAN&gt;为&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;提供了完备的支持。本书不但会用代码示例解释位于&lt;/SPAN&gt;&lt;SPAN&gt;System.Runtime.InteropServices&lt;/SPAN&gt;&lt;SPAN&gt;命名空间下的各种&lt;/SPAN&gt;&lt;SPAN&gt;API&lt;/SPAN&gt;&lt;SPAN&gt;和属性，还将介绍&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;平台为&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;专门提供的实用工具及其用法。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;请不要忘记查阅本书的配套光盘，它包含本书所有示例的源代码。每个示例都是为介绍互操作的各种技术细节而精心设计的。此外，光盘还包含了许多实用的工具和资源。具体内容可参考本书的附录部分。&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1&gt;&lt;A class="" name=TOC-3&gt;&lt;/A&gt;&lt;SPAN&gt;本书目标&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本书旨在介绍&lt;/SPAN&gt;&lt;SPAN&gt;Windows&lt;/SPAN&gt;&lt;SPAN&gt;平台上的托管代码与非托管代码之间进行互操作的各种技术，这意味着本书将介绍由&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;提供的各种互操作方法、属性以及各种工具的用法及其工作原理。虽然开发人员可以在微软的技术文档中找到相关的介绍，但其中很大一部分都没有对应的示例代码。因此开发人员很难清晰地理解一些方法和工具的用途及用法。此外，在有些情况下，&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;为某些互操作问题提供了不止一种解决方案。因此，介绍如何选择最优的解决方案以及采用最佳的实践方式也是本书的目标之一。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本书适合所有在开发过程中需要涉及到托管代码与非托管代码进行交互操作的&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;开发人员。不论是开始学习&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;编程的开发人员，还是刚刚接触互操作的资深&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;开发人员，都能从本书中获益。这是由于本书的构成区别于以往基于知识点的成文思路。本书在内容的设计上着眼于开发人员在开发过程中可能会遇到的各种问题，并以实际问题为背景将各种技术细节的介绍融汇于最佳实践之中。因此读者在阅读本书时，既可以根据自身的实际情况在书中直接找到解决问题的方法及示例代码，还可以根据本书的结构系统且全面地学习互操作技术的各个方面，从更高的角度理解互操作技术的本质和精髓。从而使本书不但有着“传道”的作用，还具有“解惑” 的功能。&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=18" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry><entry><title>《精通.NET互操作：P/Invoke，C++ Interop和COM Interop》目录</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/26/ProfessionalInteropBookContent.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/26/ProfessionalInteropBookContent.aspx</id><published>2009-04-26T07:00:00Z</published><updated>2009-04-26T07:00:00Z</updated><content type="html">&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=5&gt;第一部分 P/Invoke&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;第1章 使用C/C++类型的非托管函数&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.1 平台调用简介&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.2 Hello World!示例程序&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.3 获得要调用的非托管函数声明&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.4 平台调用基础知识&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.5 指定调用约定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.6 指定入口点&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.7 指定字符集&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.8 处理平台调用中的异常或错误&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.8.1 处理由非托管函数的错误托管定义所引起的异常或错误&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.8.2 处理由非托管函数所引起的异常或错误&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.9 释放非托管内存&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.9.1 释放由malloc方法分配的非托管内存&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.9.2 释放由new运算符分配的非托管内存&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.10 动态平台调用&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.10.1 平台调用的原理和过程&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.10.2 通过手动加载非托管DLL实现动态平台调用&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.10.3 利用反射实现动态平台调用&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.10.4 利用GetDelegateForFunctionPointer实现动态平台调用&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.11 提升平台调用性能的技巧&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.11.1 显式地指定要调用的非托管函数的名称&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.11.2 对数据封送处理进行优化&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.11.3 尽量避免字符串编码转换&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;第2章 平台调用中的数据封送&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1 字符串的封送&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1.1 封送作为参数的字符串&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1.2 封送作为返回值的字符串&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1.3 封送BSTR类型的字符串&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.2 封送作为参数的结构体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.3 封送从函数体内部返回的结构体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.3.1 封送作为函数返回值返回的结构体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.3.2 作为函数参数返回结构体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.4 封送结构体中的字符串&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.4.1 结构体中的字符指针字段&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.4.2 结构体中的字符数组字段&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.5 控制结构体字段的封送行为&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.6 控制结构体的内存布局&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.6.1 定义结构体的部分字段&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.6.2 联合体的封送&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.7 封送嵌套的结构体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.7.1 指向结构体指针字段的嵌套形式&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.7.2 结构体实例字段的嵌套形式&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.8 封送类&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.8.1 封送引用类型的简单示例&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.8.2 封送blittable引用类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.8.3 将引用类型封送为指向指针的指针&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.9 封送数组&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.9.1 封送简单类型数组&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.9.2 封送字符串数组&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.10 实战演练&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.10.1 背景介绍&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.10.2 模块介绍&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.10.3 实现平台调用&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;第3章 使用平台调用技术调用Win32 API&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.1 确定要调用的函数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.2 处理Win32函数返回的错误码&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.3 处理回调函数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.4 使用Windows定义的常量&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.5 封送Win32数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.5.1 可直接复制到本机结构中的数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.5.2 非直接复制到本机结构中的数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.6 处理句柄&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.7 传递托管对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.8 使用P/Invoke调用Win32 API的最佳实践&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.8.1 编码规范&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.8.2 性能&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.8.3 安全性&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.8.4 尽量使用Win32函数对应的.NET托管实现&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;STRONG&gt;&lt;FONT size=5&gt;第二部分 C++ Interop&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;第4章 C++ Interop&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.1 从托管C++代码中调用非托管函数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.1.1 使用平台调用技术调用非托管函数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.1.2 使用C++ Interop调用非托管函数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.2 托管代码使用非托管C++类&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.3 在非托管代码中使用托管对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.4混合编译托管和非托管代码&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.4.1 同一项目中的代码混合&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.4.2 同一源文件中的代码混合&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.5 C++ Interop中的封送处理&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.5.1 封送字符串&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.5.2 封送数组&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.5.3 封送结构体&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.5.4 封送回调函数和委托&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.6 C++ Interop的错误处理&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.6.1 通过托管C++封送非托管代码抛出的异常&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.6.2 在编译时检查类型特性&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;FONT size=5&gt;&lt;STRONG&gt;第三部分 COM Interop&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;第5章 在.NET中使用COM组件&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.1 早期绑定COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.1.1 为COM类型库生成互操作程序集&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.1.2 通过互操作程序集早期绑定COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.1.3 创建自定义互操作程序集&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.2 后期绑定COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.3 通过与非托管代码互操作创建COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.3.1 通过P/Invoke创建COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.3.2 使用C++ Interop包装COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4 封送处理&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4.1 封送常用数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4.2 封送VARIANT数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4.3 封送数组&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4.4 封送COM集合&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4.5 封送自定义数据结构&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.4.6 处理COM事件&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.5 错误处理&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.5.1 映射COM方法返回值HRESULT到托管代码&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.5.2 使用IErrorInfo接口提供扩展的错误信息&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.6 提升性能&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.6.1 细粒度接口和粗粒度接口&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.6.2 优化封送处理性能&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.6.3 避免使用后期绑定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.6.4 使用ReleaseComObject释放COM对象&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.6.5 避免跨单元调用&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.7 共享互操作程序集&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;第6章 在COM中使用.NET程序集&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.1 使用ClassInterface暴露.NET类&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.1.1 使用AutoDual实现早期绑定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.1.2 使用AutoDispatch实现后期绑定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.2 使用接口暴露.NET类&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.3 使用属性调整类型库元数据&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.3.1 控制COM标识&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.3.2 控制COM可见性&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4 封送处理&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.1 封送常用数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.2 封送字符串&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.3 封送数组&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.4 封送自定义数据结构&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.5 封送集合&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.6 封送VARIANT数据类型&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.7 传递可选参数&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.4.8 暴露托管事件&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.5 .NET异常处理&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.5.1 将异常转化为HRESULT&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.5.2 提供表示成功的HRESULT返回值&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.6 为COM Interop准备程序集&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=17" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry><entry><title>对本书的赞誉</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/BookPraise.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/BookPraise.aspx</id><published>2009-04-24T08:19:00Z</published><updated>2009-04-24T08:19:00Z</updated><content type="html">&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;托管代码与非托管代码之间的交互是许多程序员在.NET开发平台上不得不面对的任务。《精通.NET互操作性：PInvoke, C++ Interop和COM Interop》这本书深入而透彻地解析了.NET支持的三种与原生代码互操作的技术，作者以自己的经验讲述了原生代码与托管代码之间互操作所涉及到的编程要点，以及背后的一些实现原理。书中提供的实例有助于程序员快速领会并掌握.NET与原生代码互操作技术的用法。我建议在.NET平台上工作的程序员读一读这本书。 &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;——潘爱民（著名技术作家，著写了《COM原理与应用》等多部畅销书，并翻译了多部经典名作，如《深入解析Windows操作系统》（第四版）、《C++ Primer中文版》（第三版）、《COM本质论》、《计算机网络》（第四版）等。他现在微软亚洲研究院从事系统与安全方向的研究工作） &lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;与非托管代码进行互操作是.NET编程领域里面一个比较难的问题，因为它要求程序员对托管和非托管两个世界都有精深的了解。然而，互操作技术也是.NET框架最根本的基石之一，包括文件操作，网络通讯，GUI界面等大量的.NET类库都由平台调用而实现。事实上，掌握了与非托管代码互操作的技术之后，.NET程序员能够编写的程序类型可以在一夜之间倍增很多，而不只是仅限于 ASP.NET或WinForm程序的编写了。在我做.NET培训的时候，很多听众或者学员都对P/Invoke和COM Interop技术表现出了很大的兴趣，却又苦于没有C/C++的开发背景，在编写与非托管代码进行互操作的代码时可谓举步维艰。其实当年我在自己摸索其中的规律时，也耗费了大量的时间和精力。在各种.NET技术社区，关于非托管代码互操作的问题不绝于耳。该书的及时出现为以后的学习者铺平了道路。这本书上的很多内容不是MSDN或者网上可以找到的，互操作代码的编写永远都是个复杂的任务。程序员只有掌握了其中的规律，了解了托管和非托管两个世界中程序的运行原理，才可能编写出高质量的互操作代码。本书能够极大地帮助程序员掌握这门技术。&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;——夏桅（2005年微软最有价值专家（MVP），CSDN技术论坛.NET版大版主（网名Sunmast（速马））。《.NET企业服务框架——应用.NET企业服务开发分布式业务解决方案》的译者之一） &lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;.NET平台是个托管的世界，提供了与以往完全不同的编程模型。毋庸置疑，.NET是当前及未来Windows平台下开发技术的主流。但转到.NET平台并非意味着使用.NET将现有的C/C++/COM代码进行重写。.NET提供的丰富互操作技术使开发人员能够通过这些技术将.NET代码与非托管代码进行集成，以重用现有非托管代码。可惜的是，市场上大部分.NET书籍对互操作技术少有涉足，中文资源尤其缺乏。本书深入且详尽地介绍了如何在托管代码与非托管代码之间进行互操作，涉及到了互操作技术的各个方面，是本非常有价值的参考书，高度推荐！ &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;——金雪根（2002～2005年微软最有价值专家（MVP），CSDN技术论坛.NET版大版主（网名Saucer（思归））。《.NET企业服务框架——应用.NET企业服务开发分布式业务解决方案》的译者之一） &lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;从2000年.NET平台问世以来，.NET Framework已经从当初的1.0发展到目前的4.0。.NET为软件开发过程提供了一种新颖、高效的编程模型，因此广受软件企业及程序员们的青睐。但很多时候，程序员还需要在.NET中重用已有的、经过严格测试的非托管代码。虽然.NET平台提供了重用非托管代码的互操作技术，但是由于托管与非托管编程模型之间存在的巨大差异，因此掌握这些互操作技术并非易事。我曾经就为托管代码与非托管代码的交互操作问题而挠首不已，如果那时就有这么一本具有针对性的专业书籍，我就能省去很多的摸索时间和寻觅解决方案的痛苦过程。本书对.NET平台提供的各种互操作技术的方法和原理进行了深入且全面的介绍，并通过实际问题介绍了各种情况下的最佳实践。据我所知，本书是国内第一本专门介绍.NET互操作性的书。对于.NET开发人员来说，本书无疑是一本难得的好书，非常值得一读。 &lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;——陈缘（2005-2008年微软最有价值专家（MVP），CSDN技术论坛VB版版主（网名supergreenbean（超级绿豆）），《.NET 2.0应用程序调试》译者） &lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;在微软的技术格局中，风头正劲的现代软件开发平台.NET所代表的托管代码世界，与已经早已取得实质性市场认同的非托管软件开发世界（比如C++、COM等）相比，编程模型完全不同。以微软尽量保持向下兼容的一贯设计风格，.NET的设计中自然引入了各种互操作技术，以使这两个世界的往复沟通成为可能。然而多年的实践告诉我，这一领域就像是朵月中花——看上去很美，可真要“得道”却并非易事。.NET提供的互操作技术远比想象中要复杂和晦涩的多，这本国内外少有的专门全方面讲解.NET互操作技术的著作的出现实属难能可贵、雪中送炭。本书的两位作者把在该领域内多年摸索与实践的宝贵经验系统化地汇集在本书中，相信一定能够帮助读者深入理解和掌握.NET互操作技术。 &lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;——金戈（2004-2008年微软最有价值专家（MVP），《代码大全（第2版）》首席译者） &lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;微软发布了.NET Framework框架，这并不意味着要抛弃一切旧的技术，那些长期积累下来的非托管代码编写的东西，经过实践的检验，曾经带来过巨大的价值。将这些原有的代码转换成托管代码是不现实的，如何在托管代码与非托管代码之间进行互操作，继续使用原有的代码，本书给出了详细的解答。本书阐述了托管代码与非托管代码进行交互操作的主要技术，既有理论，又有详细的例子。相信读者通过阅读本书，能够全面掌握.NET互操作性这一技术的。&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;—— 孟宪会（2002-2008年微软最有价值专家（MVP），微软中文技术论坛版主，CSDN技术论坛.NET及Web开发版大版主（网名 net_lover（孟子E章）），《ASP.NET 2.0应用开发技术》作者，《Eric Meyer谈CSS（卷1）（卷2）》译者） &lt;/DIV&gt;
&lt;DIV&gt;
&lt;HR&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;.NET提供了与非托管代码进行交互操作的支持。但是由于互操作代码经常很复杂，即使资深的开发人员也经常需要互操作方面的帮助。本书对托管代码与非托管代码进行互操作的技术做了详尽的介绍。书中每个部分都有配套的示例，指导读者处理各种互操作问题。本书对于需要经常进行互操作的开发人员来说是一本很好的参考书。 &lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;——蒋晟（2004-2008年微软最有价值专家（MVP），CSDN技术论坛VC/MFC版主，微软MSDN中文论坛Visual C++版主） &lt;/DIV&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=10" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry><entry><title>本书所用术语表</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropGlossary.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropGlossary.aspx</id><published>2009-04-24T07:56:00Z</published><updated>2009-04-24T07:56:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;特注：&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;这些信息&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;来源于随《精通.NET互操作：P/Invoke，C++ Interop和COM Interop》书附赠的光盘&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;A&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;assembly&lt;/SPAN&gt;&lt;SPAN&gt;，程序集&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;apartment model&lt;/SPAN&gt;&lt;SPAN&gt;，单元模型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;B&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;blittable type&lt;/SPAN&gt;&lt;SPAN&gt;，可直接复制到本机结构中的类型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;back propagate&lt;/SPAN&gt;&lt;SPAN&gt;，回传&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;buffer&lt;/SPAN&gt;&lt;SPAN&gt;，缓冲区&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Best Practice&lt;/SPAN&gt;&lt;SPAN&gt;，最佳实践&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;binding&lt;/SPAN&gt;&lt;SPAN&gt;，绑定&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;C&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Common Language Runtime&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;CLR&lt;/SPAN&gt;&lt;SPAN&gt;），公共语言运行库&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;cooperative&lt;/SPAN&gt;&lt;SPAN&gt;，协作式&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;caller&lt;/SPAN&gt;&lt;SPAN&gt;，调用方&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;callee&lt;/SPAN&gt;&lt;SPAN&gt;，被调用方&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;calling convention&lt;/SPAN&gt;&lt;SPAN&gt;，调用约定&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Constrained Execution Region&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;CER&lt;/SPAN&gt;&lt;SPAN&gt;），受限执行区域&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Critical Finalizer&lt;/SPAN&gt;&lt;SPAN&gt;，关键终结器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Custom Runtime Callable Wrapper&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;CRCW&lt;/SPAN&gt;&lt;SPAN&gt;），自定义运行库可调用包装&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;cross apartment&lt;/SPAN&gt;&lt;SPAN&gt;，跨单元&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;COM client&lt;/SPAN&gt;&lt;SPAN&gt;，&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;客户端&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;COM Callable Wrapper&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;CCW&lt;/SPAN&gt;&lt;SPAN&gt;），&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;可调用包装&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;connetion point&lt;/SPAN&gt;&lt;SPAN&gt;，连接点&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;D&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;，动态链接库&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;delegate&lt;/SPAN&gt;&lt;SPAN&gt;，委托&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;dual interface&lt;/SPAN&gt;&lt;SPAN&gt;，双接口&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;E&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;exception&lt;/SPAN&gt;&lt;SPAN&gt;，异常&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Extended Stack Pointer&lt;/SPAN&gt;&lt;SPAN&gt;，栈指针寄存器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Common Language Specification&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;CLS&lt;/SPAN&gt;&lt;SPAN&gt;），公共语言规范&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;early binding&lt;/SPAN&gt;&lt;SPAN&gt;，早期绑定&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;F&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;flattened&lt;/SPAN&gt;&lt;SPAN&gt;，单一化&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;formatted class&lt;/SPAN&gt;&lt;SPAN&gt;，格式化类&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;finalizable&lt;/SPAN&gt;&lt;SPAN&gt;，可终结&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;finalizer&lt;/SPAN&gt;&lt;SPAN&gt;，终结器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;G&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Garbage Collector&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;GC&lt;/SPAN&gt;&lt;SPAN&gt;），垃圾收集器，垃圾回收器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Garbage Collection&lt;/SPAN&gt;&lt;SPAN&gt;，垃圾回收&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Global Assembly Cache&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;GAC&lt;/SPAN&gt;&lt;SPAN&gt;），全局程序集缓存&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;H&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;handle&lt;/SPAN&gt;&lt;SPAN&gt;，句柄&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;I&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;interop&lt;/SPAN&gt;&lt;SPAN&gt;，互操作&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;immutable&lt;/SPAN&gt;&lt;SPAN&gt;，不可变&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;initialize&lt;/SPAN&gt;&lt;SPAN&gt;，初始化&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;inline array&lt;/SPAN&gt;&lt;SPAN&gt;，内联数组&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;interop assembly&lt;/SPAN&gt;&lt;SPAN&gt;，互操作程序集&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Interface Definition language&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;IDL&lt;/SPAN&gt;&lt;SPAN&gt;），接口定义语言&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Intermediate Language&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;IL&lt;/SPAN&gt;&lt;SPAN&gt;），中间语言&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;intellisense&lt;/SPAN&gt;&lt;SPAN&gt;，智能感知&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;L&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;lib&lt;/SPAN&gt;&lt;SPAN&gt;，静态链接库&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;late binding&lt;/SPAN&gt;&lt;SPAN&gt;，后期绑定&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;level of indirection&lt;/SPAN&gt;&lt;SPAN&gt;，参数引用级别&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;lower bound&lt;/SPAN&gt;&lt;SPAN&gt;，下限&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;M&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;marshal&lt;/SPAN&gt;&lt;SPAN&gt;，封送&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;managed code&lt;/SPAN&gt;&lt;SPAN&gt;，托管代码&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;marshaler&lt;/SPAN&gt;&lt;SPAN&gt;，封送拆收器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;managed wrapper&lt;/SPAN&gt;&lt;SPAN&gt;，托管包装&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;module&lt;/SPAN&gt;&lt;SPAN&gt;，模块&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;magic number&lt;/SPAN&gt;&lt;SPAN&gt;，奇幻数字&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Microsoft Interface Definition Language&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;MIDL&lt;/SPAN&gt;&lt;SPAN&gt;），接口定义语言&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Multi Threaded Apartment&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;MTA&lt;/SPAN&gt;&lt;SPAN&gt;），多线程单元&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;N&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;native code&lt;/SPAN&gt;&lt;SPAN&gt;，本机代码&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;name decoration&lt;/SPAN&gt;&lt;SPAN&gt;，名称重整&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;name resolution&lt;/SPAN&gt;&lt;SPAN&gt;，名称解析&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;non-blittable type&lt;/SPAN&gt;&lt;SPAN&gt;，非直接复制到本机结构中的类型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Component Object Model&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;），组件对象模型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Thread Neutral Apartment&lt;/SPAN&gt;&lt;SPAN&gt;，线程中立单元&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;O&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Object Definition Language&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;ODL&lt;/SPAN&gt;&lt;SPAN&gt;），对象定义语言&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;outgoing interface&lt;/SPAN&gt;&lt;SPAN&gt;，外发接口，传出接口&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;P&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Platform Invocation Services&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;或&lt;/SPAN&gt;&lt;SPAN&gt;PInvoke&lt;/SPAN&gt;&lt;SPAN&gt;），平台调用&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;preemptive&lt;/SPAN&gt;&lt;SPAN&gt;，抢占式&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;pin&lt;/SPAN&gt;&lt;SPAN&gt;，锁定&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;primitive type&lt;/SPAN&gt;&lt;SPAN&gt;，基元类型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;proxy&lt;/SPAN&gt;&lt;SPAN&gt;，代理&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Primary Interop Assembly&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;PIA&lt;/SPAN&gt;&lt;SPAN&gt;），主互操作程序集&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;R&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Reflection&lt;/SPAN&gt;&lt;SPAN&gt;，反射&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;reference type&lt;/SPAN&gt;&lt;SPAN&gt;，引用类型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Runtime Callable Wrapper&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;RCW&lt;/SPAN&gt;&lt;SPAN&gt;），运行库可调用包装&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;S&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;stack frame&lt;/SPAN&gt;&lt;SPAN&gt;，堆栈帧&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;signature&lt;/SPAN&gt;&lt;SPAN&gt;，签名&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;singleton&lt;/SPAN&gt;&lt;SPAN&gt;，单例&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;STL&lt;/SPAN&gt;&lt;SPAN&gt;，标准模板库&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Single-Threaded Apartment&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;STA&lt;/SPAN&gt;&lt;SPAN&gt;），单线程单元&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;strong name&lt;/SPAN&gt;&lt;SPAN&gt;，强名称&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;smart pointer&lt;/SPAN&gt;&lt;SPAN&gt;，智能指针&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;safe array&lt;/SPAN&gt;&lt;SPAN&gt;，安全数组&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;sink&lt;/SPAN&gt;&lt;SPAN&gt;，事件接收器&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;T&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Thread Local Storage&lt;/SPAN&gt;&lt;SPAN&gt;，线程本地存储&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;thread context&lt;/SPAN&gt;&lt;SPAN&gt;，线程上下文&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;thread apartment&lt;/SPAN&gt;&lt;SPAN&gt;，线程单元&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;type coercion&lt;/SPAN&gt;&lt;SPAN&gt;，类型强制&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;threading model&lt;/SPAN&gt;&lt;SPAN&gt;，线程模型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;U&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;unmanaged code&lt;/SPAN&gt;&lt;SPAN&gt;，非托管代码&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;untyped parameter&lt;/SPAN&gt;&lt;SPAN&gt;，非类型化参数&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;unmanaged heap&lt;/SPAN&gt;&lt;SPAN&gt;，非托管堆&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;union&lt;/SPAN&gt;&lt;SPAN&gt;，联合体&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;unsafe&lt;/SPAN&gt;&lt;SPAN&gt;，非安全&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;upper bound&lt;/SPAN&gt;&lt;SPAN&gt;，上限&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;V&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;value type&lt;/SPAN&gt;&lt;SPAN&gt;，值类型&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=9" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry><entry><title>有关.NET互操作技术的互联网资源</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropResources.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropResources.aspx</id><published>2009-04-24T07:32:00Z</published><updated>2009-04-24T07:32:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;特注：&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;这些信息&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;来源于随《精通.NET互操作：P/Invoke，C++ Interop和COM Interop》书附赠的光盘&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;虽然本书对&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;、&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;及&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;这&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;种互操作技术进行了全面且详细的介绍，但是如果读者能从丰富的互联网资源中获取一些有用的信息，无疑能加深读者对本书所介绍的互操作知识和方法的理解。下面列出了一些互联网上有关互操作技术的有用资源。&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="LINE-HEIGHT:172%;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;2.1&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;Interop&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;interop123&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;网站&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.interop123.com&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.interop123.net&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.interop123.cn&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本书的技术支持网站，也提供了一个互操作最佳实践的交流平台。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;dotnetinterop&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;网站&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.dotnetinterop.com/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;一个列出了不少有关互操作技术资源的网站&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;An Overview of Managed/Unmanaged Code Interoperability&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/ms973872.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:21pt;"&gt;&lt;SPAN&gt;该文章介绍了托管代码和非托管代码之间交互操作的一些基础知识。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Interoperating with Unmanaged Code&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/sd10k43k.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;包括了一系列主题文章，介绍了一些在托管代码和非托管代码之间进行互操作的知识。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="LINE-HEIGHT:172%;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;2.2&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;P/Invoke&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;pinvoke.net&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;网站&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.pinvoke.net/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;此网站上有大量丰富的对&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;进行&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;时所需进行的托管声明，使开发人员可以学习或快速查找某些&lt;/SPAN&gt;&lt;SPAN&gt;Win32&lt;/SPAN&gt;&lt;SPAN&gt;函数的对应&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;声明。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Platform Invoke Tutorial&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/aa288468.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本文介绍了如何借助于&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;技术在&lt;/SPAN&gt;&lt;SPAN&gt;C#&lt;/SPAN&gt;&lt;SPAN&gt;中调用非托管&lt;/SPAN&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;中的函数及如何封送一些常用数据类型。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Microsoft Win32 to Microsoft .NET Framework API Map&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn2.microsoft.com/en-us/library/aa302340.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该文档列出了在&lt;/SPAN&gt;&lt;SPAN&gt;.NET Framework&lt;/SPAN&gt;&lt;SPAN&gt;中已经实现了的、与&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;函数具有相同功能的方法。在避免不必要的、对某些&lt;/SPAN&gt;&lt;SPAN&gt;Win32&lt;/SPAN&gt;&lt;SPAN&gt;函数的进行&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;的同时，也能使用&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;提供的对应托管实现编写更安全、更高效的代码。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Windows API Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn2.microsoft.com/en-us/library/aa383749(VS.85).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:0cm;"&gt;&lt;SPAN&gt;有关&lt;/SPAN&gt;&lt;SPAN&gt;Windows API&lt;/SPAN&gt;&lt;SPAN&gt;的最权威指南。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;CLR Inside Out: Marshaling between Managed and Unmanaged Code&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn2.microsoft.com/en-us/magazine/cc164193.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;解释了&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;中容易混淆的某些基本概念，以及能够简化在托管和非托管代码间封送数据的方法和技巧。也包含了一个能够为&lt;/SPAN&gt;&lt;SPAN&gt;Win32&lt;/SPAN&gt;&lt;SPAN&gt;函数自动生成对应托管声明等功能的小工具。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Calling Win32 DLLs in C# with P/Invoke&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/magazine/cc164123(en-us).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;介绍了如何使用&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;技术调用&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;函数。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;.NET Interoperability: .NET ? Win32&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.blong.com/Conferences/BorConUK2002/Interop1/Win32AndDotNetInterop.htm&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;本文重点介绍了如何在托管代码中调用非托管&lt;/SPAN&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;导出的函数。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）从托管代码调用本机函数&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/library/ms235282.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;介绍了如何在&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;中使用显式&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;DllImport&lt;/SPAN&gt;&lt;SPAN&gt;属性）及使用&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;（隐式&lt;/SPAN&gt;&lt;SPAN&gt;PInvoke&lt;/SPAN&gt;&lt;SPAN&gt;）从托管代码调用本机函数。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="LINE-HEIGHT:172%;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;2.3&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;C++ Interop&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）使用&lt;/SPAN&gt;&lt;SPAN&gt; C++ Interop&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/library/2x8kf7zx(VS.80).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了如何使用&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;技术实现托管代码和非托管代码的交互操作。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Interop &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;的性能注意事项&lt;/SPAN&gt;&lt;SPAN&gt; (C++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/library/ky8kkddw.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了使用&lt;/SPAN&gt;&lt;SPAN&gt;C++ Interop&lt;/SPAN&gt;&lt;SPAN&gt;技术在托管代码与非托管代码之间进行互操作时有关性能的若干准则和建议。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="LINE-HEIGHT:172%;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;2.4&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;COM Interop&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;CLR &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;完全介绍&lt;/SPAN&gt;&lt;SPAN&gt;: COM Interop &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;简介&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/magazine/cc163494.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;有关的基本概念，并提供了示例，适合对&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;技术进行快速入门。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Understanding Classic COM Interoperability With .NET Applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.codeproject.com/KB/COM/cominterop.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题详细介绍了如何借助于&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;技术在托管代码中使用&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件以及如何在&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;客户端中使用&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;程序集。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop Tutorials&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/aa645712(VS.71).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:42pt;"&gt;&lt;SPAN&gt;该主题包含了两篇在托管代码和&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件之间进行交互的简要指南。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;(4) .NET Interoperability: COM Interop&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://www.blong.com/Conferences/BorConUK2002/Interop2/COMNetInterop.htm&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该文章介绍了如何在托管代码中使用非托管&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;对象，以及如何在&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;客户端中使用托管&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;对象&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Improving Interop Performance&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/ms998551.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该文章介绍了设计和创建用于同&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;组件进行互操作的&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;组件时，有关提升性能的若干建议。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="LINE-HEIGHT:172%;"&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;2.5 &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;封送处理&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:14pt;LINE-HEIGHT:172%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P class=MsoNoSpacing&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Interop Marshaling&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/04fy9ya1.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了使用&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;和&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;时，如何对数据进行封送处理。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN:left;" align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN:left;" align=left&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Default Marshaling Behavior&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/zah6xy75.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了如何识别互操作封送处理服务的默认封送处理行为。并对数组、布尔、字符、字符串、类、结构体、对象及委托的封送处理行为进行了详细的介绍。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN:left;" align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Copying and Pinning&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/23acw07k(VS.71).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了在封送数据时，封送拆收器如何拷贝和锁定数据。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Overview of Marshaling in C++&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/library/bb384865.aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了在混合模式下，如何在本机类型和托管类型之间封送数据。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN:left;" align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="TEXT-ALIGN:left;" align=left&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Blittable and Non-Blittable Types&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/zh-cn/library/aa719638(en-us).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了可直接复制到本机结构中的类型及非直接复制到本机结构中的类型。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Windows Data Types&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;URL&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt 'Times New Roman';font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该主题介绍了&lt;/SPAN&gt;&lt;SPAN&gt;Windows&lt;/SPAN&gt;&lt;SPAN&gt;编程中的常用数据类型。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=8" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry><entry><title>有关.NET互操作技术的源代码和示例资源</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropSourceCodeSamples.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropSourceCodeSamples.aspx</id><published>2009-04-24T07:24:00Z</published><updated>2009-04-24T07:24:00Z</updated><content type="html">&lt;H3 class=goog-ws-page-title id=goog-ws-page-title-header&gt;&lt;SPAN id=goog-ws-page-title&gt;有关.NET互操作技术的源代码和示例资源&lt;/SPAN&gt; &lt;/H3&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;特注：&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;这些信息&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;来源于随《精通.NET互操作：P/Invoke，C++ Interop和COM Interop》书附赠的光盘&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Platform Invoke Samples&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Resources\Platform Invoke Samples&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;资源描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该范例代码演示了如何使用&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;调用非托管&lt;/SPAN&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;中的自定义普通函数，以及如何通过&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;调用&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;。大部分范例都采用了&lt;/SPAN&gt;&lt;SPAN&gt;C#&lt;/SPAN&gt;&lt;SPAN&gt;和&lt;/SPAN&gt;&lt;SPAN&gt;VB.NET&lt;/SPAN&gt;&lt;SPAN&gt;两种语言编写。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;.NET Compact Framework Sample: P/Invoke Library&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Resources\DotNET Compact Framework PInvoke Samples&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;资源描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该范例代码演示了如何使用&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;实现&lt;/SPAN&gt;&lt;SPAN&gt;.NET Compact Framework&lt;/SPAN&gt;&lt;SPAN&gt;中尚未提供的某些功能。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:0cm;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Managed Windows API&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Resources\Managed WinAPI&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;资源描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;这是一个开源项目的源代码。源代码中含有大量对&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;函数的&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;调用进行包装的&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;程序集。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;A Win32 Library for .NET&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Resources\A Win32 Library for .NET&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;资源描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;这是&lt;/SPAN&gt;&lt;SPAN&gt;codeproject&lt;/SPAN&gt;&lt;SPAN&gt;上面提供的一个包含了&lt;/SPAN&gt;&lt;SPAN&gt;Win32 API&lt;/SPAN&gt;&lt;SPAN&gt;函数，常量以及结构体定义的托管类库。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;PInvoke Library&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Resources\PInvoke Library&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;资源描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;这是&lt;/SPAN&gt;&lt;SPAN&gt;codeplex&lt;/SPAN&gt;&lt;SPAN&gt;上面的一个开源项目，提供了包含了&lt;/SPAN&gt;&lt;SPAN&gt;Win32&lt;/SPAN&gt;&lt;SPAN&gt;和&lt;/SPAN&gt;&lt;SPAN&gt;WinCE32 API&lt;/SPAN&gt;&lt;SPAN&gt;函数，常量以及结构体定义的托管类库，还包括了调用示例代码。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Windows Message ID constants&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Resources\Windows Message ID constants&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;资源描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;这个资源提供了包含大量&lt;/SPAN&gt;&lt;SPAN&gt;Windows&lt;/SPAN&gt;&lt;SPAN&gt;消息&lt;/SPAN&gt;&lt;SPAN&gt;ID&lt;/SPAN&gt;&lt;SPAN&gt;常量定义的&lt;/SPAN&gt;&lt;SPAN&gt;C#&lt;/SPAN&gt;&lt;SPAN&gt;枚举，是&lt;/SPAN&gt;&lt;SPAN&gt;codeproject&lt;/SPAN&gt;&lt;SPAN&gt;上面的一个项目。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=7" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry><entry><title>有关.NET互操作技术的工具软件</title><link rel="alternate" type="text/html" href="http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropSoftware.aspx" /><id>http://interop123.com/blogs/professional_dotnet_interop/archive/2009/04/24/DotNetInteropSoftware.aspx</id><published>2009-04-24T07:19:00Z</published><updated>2009-04-24T07:19:00Z</updated><content type="html">&lt;H3 class=goog-ws-page-title id=goog-ws-page-title-header&gt;&lt;SPAN id=goog-ws-page-title&gt;有关.NET互操作技术的软件&lt;/SPAN&gt; &lt;/H3&gt;
&lt;DIV class="goog-ws-content goog-ws-content-ie goog-ws-clear" id=jot-content0&gt;
&lt;DIV&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;特注：这些信息来源于随《精通.NET互操作：P/Invoke，C++ Interop和COM Interop》书附赠的光盘&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke Interop Assistant&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\PInvoke Interop Assistant&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;该开源工具能够给开发者使用&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;带来极大的方便。使用该工具，就可以直接为某个指定&lt;/SPAN&gt;&lt;SPAN&gt;API&lt;/SPAN&gt;&lt;SPAN&gt;生成对应的&lt;/SPAN&gt;&lt;SPAN&gt;C#&lt;/SPAN&gt;&lt;SPAN&gt;或&lt;/SPAN&gt;&lt;SPAN&gt;VB.NET&lt;/SPAN&gt;&lt;SPAN&gt;的声明代码，以供开发者直接使用。这样就可以把开发人员从编写非托管函数原型的繁杂工作中解放出来，这无疑提高了工作效率，而且还减少了出错的可能。更为强大的是，该工具还能够直接从&lt;/SPAN&gt;&lt;SPAN&gt;C&lt;/SPAN&gt;&lt;SPAN&gt;编写的函数声明（目前还不支持&lt;/SPAN&gt;&lt;SPAN&gt;C++&lt;/SPAN&gt;&lt;SPAN&gt;）生成对应的&lt;/SPAN&gt;&lt;SPAN&gt;C#/VB.NET&lt;/SPAN&gt;&lt;SPAN&gt;代码。除此之外，这个工具还可以查看已有的&lt;/SPAN&gt;&lt;SPAN&gt;Assembly&lt;/SPAN&gt;&lt;SPAN&gt;中的&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;或者&lt;/SPAN&gt;&lt;SPAN&gt;COM Interop&lt;/SPAN&gt;&lt;SPAN&gt;的函数声明，提示对应的非托管函数的原型以及关于数据封送相关的一些提示和建议。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Tlbimp&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Type Library Importer in Managed Code&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;类型库导入程序（&lt;/SPAN&gt;&lt;SPAN&gt;Tlbimp.exe&lt;/SPAN&gt;&lt;SPAN&gt;）是一款&lt;/SPAN&gt;&lt;SPAN&gt;.NET SDK&lt;/SPAN&gt;&lt;SPAN&gt;工具，用于将&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;类型库中的类型定义转换为公共语言运行库程序集中的等效定义，以生成互操作程序集。这款&lt;/SPAN&gt;&lt;SPAN&gt;TlbImp&lt;/SPAN&gt;&lt;SPAN&gt;工具是微软采用托管代码编写的，而且是完全开源的。开发人员可以通过源代码获悉&lt;/SPAN&gt;&lt;SPAN&gt;TlbImp&lt;/SPAN&gt;&lt;SPAN&gt;的内部工作原理，并且还能根据自己的需求修改和扩展该工具。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:0cm;"&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Tlbexp&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Type Library Importer in Managed Code&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;类型库导出程序（&lt;/SPAN&gt;&lt;SPAN&gt;Tlbexp.exe&lt;/SPAN&gt;&lt;SPAN&gt;）是一款&lt;/SPAN&gt;&lt;SPAN&gt;.NET SDK&lt;/SPAN&gt;&lt;SPAN&gt;工具，用于生成一个类型库，该类型库描述公共语言运行库程序集中定义的类型。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;.NET Reflector&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\.NET Reflector&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;.NET Reflector&lt;/SPAN&gt;&lt;SPAN&gt;是一款强大的&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;程序集反编译工具。使用该工具，我们就能够轻松地查看&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;程序集（&lt;/SPAN&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;，&lt;/SPAN&gt;&lt;SPAN&gt;EXE&lt;/SPAN&gt;&lt;SPAN&gt;等）的源代码。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;汇编程序&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\MSIL&lt;/SPAN&gt;&lt;SPAN&gt;汇编程序&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;SPAN&gt;汇编程序（&lt;/SPAN&gt;&lt;SPAN&gt;Ilasm.exe&lt;/SPAN&gt;&lt;SPAN&gt;）是一款&lt;/SPAN&gt;&lt;SPAN&gt;.NET SDK&lt;/SPAN&gt;&lt;SPAN&gt;工具，用于从&lt;/SPAN&gt;&lt;SPAN&gt;Microsoft&lt;/SPAN&gt;&lt;SPAN&gt;中间语言（&lt;/SPAN&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;SPAN&gt;）生成可移植可执行的（&lt;/SPAN&gt;&lt;SPAN&gt;PE&lt;/SPAN&gt;&lt;SPAN&gt;）文件。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;反汇编程序&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\MSIL&lt;/SPAN&gt;&lt;SPAN&gt;反汇编程序&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;SPAN&gt;反汇编程序（&lt;/SPAN&gt;&lt;SPAN&gt;Ildasm.exe&lt;/SPAN&gt;&lt;SPAN&gt;）是一款&lt;/SPAN&gt;&lt;SPAN&gt;.NET SDK&lt;/SPAN&gt;&lt;SPAN&gt;工具，是&lt;/SPAN&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;SPAN&gt;汇编程序（&lt;/SPAN&gt;&lt;SPAN&gt;Ilasm.exe&lt;/SPAN&gt;&lt;SPAN&gt;）的伙伴工具。&lt;/SPAN&gt;&lt;SPAN&gt;Ildasm.exe&lt;/SPAN&gt;&lt;SPAN&gt;采用包含&lt;/SPAN&gt;&lt;SPAN&gt;Microsoft&lt;/SPAN&gt;&lt;SPAN&gt;中间语言（&lt;/SPAN&gt;&lt;SPAN&gt;MSIL&lt;/SPAN&gt;&lt;SPAN&gt;）代码的可移植可执行（&lt;/SPAN&gt;&lt;SPAN&gt;PE&lt;/SPAN&gt;&lt;SPAN&gt;）文件，并创建相应的文本文件作为&lt;/SPAN&gt;&lt;SPAN&gt;Ilasm.exe&lt;/SPAN&gt;&lt;SPAN&gt;的输入。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）全局程序集缓存工具&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\&lt;/SPAN&gt;&lt;SPAN&gt;全局程序集缓存工具&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;全局程序集缓存工具（&lt;/SPAN&gt;&lt;SPAN&gt;Gacutil.exe&lt;/SPAN&gt;&lt;SPAN&gt;）使开发人员可以查看和操作全局程序集缓存和下载缓存的内容。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;Uuidgen&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Uuidgen&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:0cm;"&gt;&lt;SPAN&gt;Uuidgen.exe&lt;/SPAN&gt;&lt;SPAN&gt;是一款&lt;/SPAN&gt;&lt;SPAN&gt;.NET SDK&lt;/SPAN&gt;&lt;SPAN&gt;工具，用于生成全局唯一标识符。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;9&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）二进制文件转储器&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Dumpbin&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;二进制文件转储器（&lt;/SPAN&gt;&lt;SPAN&gt;Dumpbin.exe&lt;/SPAN&gt;&lt;SPAN&gt;）工具可以用来查看所有&lt;/SPAN&gt;&lt;SPAN&gt;32-bit Common Object File Format&lt;/SPAN&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;COFF&lt;/SPAN&gt;&lt;SPAN&gt;）格式的二进文件的信息，如&lt;/SPAN&gt;&lt;SPAN&gt;COFF&lt;/SPAN&gt;&lt;SPAN&gt;对象，可执行文件，以及&lt;/SPAN&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;等。&lt;/SPAN&gt;&lt;SPAN&gt;Dumpbin.exe&lt;/SPAN&gt;&lt;SPAN&gt;是常用的&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;辅助工具，主要使用它来获得从非托管&lt;/SPAN&gt;&lt;SPAN&gt;DLL&lt;/SPAN&gt;&lt;SPAN&gt;中导出的函数信息。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;10&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）程序集注册工具&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Regasm&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;使用程序集注册工具（&lt;/SPAN&gt;&lt;SPAN&gt;Regasm.exe&lt;/SPAN&gt;&lt;SPAN&gt;），可以完成注册&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;程序集以及为&lt;/SPAN&gt;&lt;SPAN&gt;.NET&lt;/SPAN&gt;&lt;SPAN&gt;程序集生成&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;类型库的工作。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;11&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;OLE/COM &lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;对象查看器&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Oleview&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;使用&lt;/SPAN&gt;&lt;SPAN&gt;OLE/COM &lt;/SPAN&gt;&lt;SPAN&gt;对象查看器（&lt;/SPAN&gt;&lt;SPAN&gt;Oleview.exe&lt;/SPAN&gt;&lt;SPAN&gt;）能够以结构化方式查看及配置安装在系统中的&lt;/SPAN&gt;&lt;SPAN&gt;COM&lt;/SPAN&gt;&lt;SPAN&gt;类。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;12&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）注册表编辑器&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\Regedit&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;使用注册表编辑器（&lt;/SPAN&gt;&lt;SPAN&gt;Regedit.exe &lt;/SPAN&gt;&lt;SPAN&gt;或&lt;/SPAN&gt;&lt;SPAN&gt; Regedt32.exe&lt;/SPAN&gt;&lt;SPAN&gt;）可以查看和修改注册表信息。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;13&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;PInvoke.net Visual Studio&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;插件&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\PInvoke.net Add-in&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;此&lt;/SPAN&gt;&lt;SPAN&gt;Visual Studio&lt;/SPAN&gt;&lt;SPAN&gt;插件以&lt;/SPAN&gt;&lt;SPAN&gt;pinvoke.net&lt;/SPAN&gt;&lt;SPAN&gt;上提供的知识资源为基础，可以让我们在&lt;/SPAN&gt;&lt;SPAN&gt;Visual Studio&lt;/SPAN&gt;&lt;SPAN&gt;中快捷方便地加入对&lt;/SPAN&gt;&lt;SPAN&gt;Win32&lt;/SPAN&gt;&lt;SPAN&gt;函数的&lt;/SPAN&gt;&lt;SPAN&gt;P/Invoke&lt;/SPAN&gt;&lt;SPAN&gt;声明。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN&gt;（&lt;/SPAN&gt;&lt;SPAN&gt;14&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN&gt;）&lt;/SPAN&gt;&lt;SPAN&gt;SWIG&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;光盘位置&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;Tools\SWIG&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:42pt;TEXT-INDENT:-21pt;"&gt;&lt;SPAN style="FONT-FAMILY:Wingdings;"&gt;&lt;SPAN&gt;l&lt;SPAN style="FONT:7pt Times New Roman;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;工具描述&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT:21pt;TEXT-INDENT:21pt;"&gt;&lt;SPAN&gt;SWIG&lt;/SPAN&gt;&lt;SPAN&gt;是一个能够将&lt;/SPAN&gt;&lt;SPAN&gt;C/C++&lt;/SPAN&gt;&lt;SPAN&gt;编写的程序同各种高级程序设计语言（比如&lt;/SPAN&gt;&lt;SPAN&gt;C#&lt;/SPAN&gt;&lt;SPAN&gt;，&lt;/SPAN&gt;&lt;SPAN&gt;Java&lt;/SPAN&gt;&lt;SPAN&gt;等）、脚本语言（比如&lt;/SPAN&gt;&lt;SPAN&gt;Perl&lt;/SPAN&gt;&lt;SPAN&gt;，&lt;/SPAN&gt;&lt;SPAN&gt;PHP&lt;/SPAN&gt;&lt;SPAN&gt;，&lt;/SPAN&gt;&lt;SPAN&gt; Python&lt;/SPAN&gt;&lt;SPAN&gt;等）等程序设计语言进行连接的软件开发工具。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;img src="http://interop123.com/aggbug.aspx?PostID=6" width="1" height="1"&gt;</content><author><name>PInvoke.Book.Admin</name><uri>http://interop123.com/members/PInvoke.Book.Admin.aspx</uri></author><category term="C++/CLI" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B002F00_CLI/default.aspx" /><category term="平台调用" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_735EF053038C2875_/default.aspx" /><category term=".NET互操作技术" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/.NET_924ECD645C4F80622F67_/default.aspx" /><category term="PInvoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/PInvoke/default.aspx" /><category term="互操作" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/_924ECD645C4F_/default.aspx" /><category term="COM Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/COM+Interop/default.aspx" /><category term="P/Invoke" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/P_2F00_Invoke/default.aspx" /><category term="C++ Interop" scheme="http://interop123.com/blogs/professional_dotnet_interop/archive/tags/C_2B002B00_+Interop/default.aspx" /></entry></feed>
