如何使用 COM 组件,在 Visual Studio.net 中用 Visual C#.net 或使用 Visual C# 2005年的 Visual Studio 2005 中

文章翻译 文章翻译
文章编号: 816152 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本分步指南介绍了如何使用一个 COM 组件从 Microsoft Visual Studio.net 中通过使用 Microsoft Visual C#.net 或通过使用 Microsoft Visual C# 2005年的 Microsoft Visual Studio 2005 中。


要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和服务包,您可能需要:
  • visual C#.net 或 Visual C# 2005

本文假定您熟悉下列主题:
  • visual C#.net 或 Visual C# 2005
  • COM

使用 Visual Studio.net 中的 COM 组件

通过使用 Microsoft.net 框架组件对象模型 (COM) 互操作性层 (或 COM 互操作),您可以在 Microsoft Visual Studio.net 代码中使用从 COM 组件。使用 Visual Studio.net 或 Visual Studio 2005 您可以轻松地访问和使用 COM 组件。

注意本文使用一个简单的 COM 组件命名 MyCOMComponent 出于演示目的。此组件包含在一个类,Class1,与单个的方法 添加Add 方法将两个数字相加,并返回之和。请参阅 "Complete Code Listing for MyCOMComponent" 部分所源代码此组件。在这篇文章中使用该技术适用于任何 COM 组件。
  1. 启动 Microsoft Visual Basic 6.0。
  2. 创建一个名为 MyCOMComponent 新 ActiveX Dll
  3. Class1 中粘贴以下代码
    'Sample COM Component Source Code
    'Written in Visual Basic 6.0
    '
    'Project Name: MyCOMComponent
    'Project Type: COM DLL
    'File Name: MyCOMComponent.dll
    '
    'Class Name: Class1
    
    Option Explicit
    
    Public Function Add(ByVal Num1 As Long, ByVal Num2 As Long) As Long
      Add = Num1 + Num2
    End Function
    窗口。
  4. 文件 菜单上单击 生成 MyCOMComponent.dll
  5. 生成项目 对话框上单击 确定。 创建 MyCOMComponent.Dll。
  6. 关闭 Microsoft Visual Basic 6.0。
  7. 启动 Microsoft Visual Studio.net 或 Microsoft Visual Studio 2005。在 Visual C#.net 中或在 Visual C# 2005年中创建一个新的 控制台应用程序 并命名项目 MyCOMClient
  8. 项目 菜单上单击 添加引用
  9. 添加引用 对话框中单击 COM 选项卡 ListView 控件将列出所有 COM 的通告按字母顺序在本地计算机上注册的组件。
  10. 定位和选择 MyCOMComponent.dll 文件、 单击 打开,然后单击 确定 以关闭该对话框。

    注意 在 Visual 有关 Studio 的 2005 年没有单击 打开
  11. Class1 代码窗口中将下面的代码添加到 Main 函数:
    int mySum = 0;
    MyCOMComponent.Class1Class  myCOM = new MyCOMComponent.Class1Class();
    mySum = myCOM.Add(1,2);
    
    Console.Write("1 + 2 = {0}", mySum.ToString());
    Console.ReadLine();
    
  12. 调试 菜单上单击 $ 开始 以生成并运行该应用程序。

    在控制台窗口中将显示以下输出:
    1 + 2 = 3

完成 Visual C#.net 代码列表

using System;

namespace MyCOMClient
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			int mySum = 0;
			MyCOMComponent.Class1Class  myCOM = new MyCOMComponent.Class1Class();
			mySum = myCOM.Add(1,2);

			Console.Write("1 + 2 = {0}", mySum.ToString());
			Console.ReadLine();
		}

	}
}

完成 MyCOMComponent 有关代码列表

'Sample COM Component Source Code
'Written in Visual Basic 6.0
'
'Project Name: MyCOMComponent
'Project Type: COM DLL
'File Name: MyCOMComponent.dll
'
'Class Name: Class1

Option Explicit

Public Function Add(ByVal Num1 As Long, ByVal Num2 As Long) As Long
  Add = Num1 + Num2
End Function

疑难解答

与任何 COM 组件一样,您必须注册 MyCOMComponent 之前可以使用它们。请确保使用工具 (如 Regsvr32.exe 注册 MyCOMComponent。

参考

有关详细的信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
高级的 COM 互操作
http://msdn2.microsoft.com/en-us/library/8bwh56xe(vs.71).aspx

属性

文章编号: 816152 - 最后修改: 2007年5月16日 - 修订: 2.5
这篇文章中的信息适用于:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 标准版
  • Microsoft Visual C# .NET 2002 标准版
关键字:?
kbmt kbcontrol kbwindowsforms kbcominterop kbinterop kbhowtomaster KB816152 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 816152
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com