`
wangyihust
  • 浏览: 433648 次
文章分类
社区版块
存档分类
最新评论

使用.NET2.0编写COM组件供VB调用

阅读更多

  这个提法不太合理,个人觉得。只是工程部门原来的程序都是跑在VB上,调用的dll为ATL COM组件; 而现在的新功能开发都建立在.net2005上,于是便出现了 如题所述 的情况,怎样在.NET2.0中编写COM组件供VB调用??

  1.定义接口
  Com是通过抛出接口让外部应用调用的,每个接口、组件都有一个Guid,在.Net中开发Com组件也不例外。
  [Guid(“0bb13346-7e9d-4aba-9ff2-862e0105489a”)]
  public interface IMyService
  {
  //定义接口方法或者属性,每个方法或属性都有一个DISPID属性,供VBScript等使用
  
   [DispId( 1 )]
   void Method1( args … );
  }


  2.实现接口的派生类
   //Guid属性定义组件的Guid
   //ProgID定义Com组件的ProgID
   [Guid(
  "ba0a3019-f0d8-4406-8116-f80d5515c686" ) ,
   ProgId("ClassNamespace.MyService"),
   ClassInterface(
  ClassInterfaceType.None)]
   public class
  MyService : IMyService
   {
   …… //实现代码部分
   }


  3.将.Net装配件转换为公有装配件
   (1)创建强名字
   sn –k mykey.snk
   并将强名字拷贝到工程目录下面
   在AssembyInfo.cs修改对应的配置
   [assembly: AssemblyKeyFile(“../../mykey.snk”)]


  (2)导出类型库
   为了在VB中使用,必须使用tlbexp.exe导出Com类型库。
           tlbexp SisCalLib.dll /out:SisCalLib.tlb


  (3注册装配件
   RegAsm MyService.dll

         (4)将装配件加入GAC
   gacutil  -i MyService.dll
   注意:该步骤不是必须的。
  

          (5)在AssembyInfo.cs修改COM对外可见性配置

             // 将 ComVisible 设置为 false 使此程序集中的类型
             // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
             // 则将该类型上的 ComVisible 属性设置为 true。
              [assembly: ComVisible(true)]

             // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
             [assembly: Guid("e011ed16-93a3-41aa-8375-399fa259b935")]

         经过上面的工作,就将一个.NET装配件转化为COM组件。

        4.在VB中调用生成的COM组件(dll)

             1)工程->引用

              2)创建对象调用



分享到:
评论

相关推荐

    使用.NET2.0 编写COM组件供Visual Basic调用.docx

    标题所述的文档是关于如何使用.NET 2.0框架编写COM(Component Object Model)组件,并使其可供Visual Basic应用程序调用的教程。COM是Microsoft的一种组件技术,允许不同编程语言之间进行互操作。以下是对文档主要...

    .NET2.0互操作解决问题

    - **COM互操作**:.NET Framework 2.0允许.NET代码与传统的COM组件进行交互,这意味着你可以轻松地在.NET应用中调用COM组件,或者将.NET组件暴露为COM对象,从而实现与非.NET环境的集成。 - **CLR互操作**:公共语言...

    apress.pro.asp.net.2.0.in.vb.2005

    《Apress.Pro.ASP.NET.2.0.in.VB.2005》是一本专为Visual Basic .NET 2005开发者编写的ASP.NET 2.0技术指南。这本书详细介绍了如何利用ASP.NET 2.0框架构建高效、功能丰富的Web应用程序。通过深入学习,读者将能够...

    ext.net2.0的dll

    通过Ext.NET 2.0,开发者可以直接在C#或VB.NET中编写代码,利用.NET的强类型和面向对象特性,无需深入JavaScript语法,就能轻松实现复杂的前端界面功能。 1. **组件丰富**:Ext.NET 2.0 包含了大量的UI组件,如表格...

    asp.net2.0开发的简单网页计算器

    首先,ASP.NET 2.0的核心组件是.NET Framework 2.0,它提供了丰富的类库和工具支持,使得开发者可以使用C#、VB.NET等语言编写Web应用。在本项目中,我们可能会看到使用C#或VB.NET编写的后台代码,这些代码负责处理...

    asp.net2.0数据库入门经典DOC格式.doc

    在ASP.NET 2.0中,开发人员可以使用更少的代码来实现更复杂的网页功能,这主要得益于其增强的数据集成能力和简化的工作流程。 1. ASP.NET 2.0 的核心改进 ASP.NET 2.0引入了许多新特性,旨在简化Web开发,包括控件...

    ASP.NET2.0+AjaxPro留言本_aspnetajaxpro.zip

    4. **C#或VB.NET**:服务器端编程语言,编写处理逻辑和数据库操作。 5. **SQL Server**:可能作为后台数据库,存储留言信息。 【应用场景】 此类基于AjaxPro的留言本示例适用于学习和理解如何在ASP.NET 2.0环境中...

    Reflector .net2.0 反编绎工具

    例如,它能够分析并可视化程序集的依赖关系,帮助开发者理解组件间的耦合程度和调用关系。此外,Reflector还可以反序列化XML序列化的对象,这对于调试和理解数据交换逻辑非常有用。 在.NET开发社区中,Reflector被...

    .NET Windows编程系列课程(21):ADO.NET2.0 和SQLCLR

    《.NET Windows编程系列课程(21):ADO.NET2.0 和SQLCLR》是一门深入探讨.NET框架在Windows环境中与数据库交互的课程,特别是针对SQL Server 2005中的SQL Common Language Runtime (SQLCLR)特性。在这个教程中,我们...

    sap .net connector2.0

    1. **接口介绍**:SAP .NET Connector 提供了一组面向对象的.NET类库,使得.NET开发者能够利用C#、VB.NET或其他.NET语言编写应用程序,直接调用SAP RFC(远程功能调用)和BAPI(业务对象方法接口)。 2. **RFC支持*...

    PHP TO ASP.NET 2.0开发系列课程(4):PHP互操作性介绍之Windows平台下的应用(一)

    5. **案例分析**:课程可能会包含一些实际示例,比如在PHP中调用ASP.NET编写的数据库访问组件,或者在ASP.NET中利用PHP进行图像处理等。 6. **性能和安全考虑**:在实现互操作性的同时,讨论可能遇到的性能瓶颈以及...

    Expert .NET 2.0 IL Assembler

    《Expert .NET 2.0 IL Assembler》是一本深入探讨微软中间语言(IL)的专著,适合对.NET框架底层运作机制感兴趣或者希望提升.NET编程能力的开发者阅读。IL,全称为Intermediate Language,是.NET Framework中的核心...

    ASP.NET 2.0中操作数据创建一个数据访问层(DAL)

    在ASP.NET 2.0中,数据访问通常通过ADO.NET进行,这包括使用DataSet、DataTable、DataAdapter等组件。在本例中,我们将创建一个强类型的DataSet,它结合了.NET Framework的类型安全性和数据库的结构信息,使得代码...

    基于.Net 2.0,支持插件的记事本

    它的主要组件包括公共语言运行库(Common Language Runtime, CLR)和类库,这些都为编写高效、跨语言的代码提供了便利。在这个框架下,开发人员可以利用C#、VB.NET等语言进行开发。 Winform是.Net框架的一部分,...

    Microsoft J#.Net Version 2.0 Redistributable

    5. 互操作性:J#允许开发者调用.NET Framework中的类和方法,同时也支持.NET组件在J#应用程序中的使用,增强了不同语言之间的代码复用。 在实际应用中,J#.Net Version 2.0主要适用于以下情况: - Java开发者希望...

    同时使用C#与VB.NET两种语言(2.0)

    这样,一个类可以是C#编写的,而调用它的类则可以是VB.NET编写的。 3. **DLL库的使用**:可以分别用C#和VB.NET编写独立的类库,然后将这些类库编译成DLL文件。在其他项目中,可以引用这些DLL,无论它们是用哪种语言...

    DataWindow .NET 2.5 完美破解补丁

    DataWindow .NET 2.5 是 PowerBuilder 中的一个核心组件,它是 Sybase(现已被 SAP 收购)开发的一种用于构建数据库应用的图形化控件。这个“完美破解补丁”似乎提供了对 DataWindow .NET 2.5 的未授权访问,允许在 ...

    Apress.Expert.dot.NET.2.0.IL.Assembler.Aug.2006 (带完整书签)

    .NET 2.0 是微软发布的一个重要的软件开发平台,它不仅支持多种编程语言(如 C#、VB.NET 等),还提供了一套丰富的类库,使得开发者能够更加高效地构建跨平台的应用程序。.NET 2.0 的主要特点包括: - **CLR...

    ASP.NET v2.0 入门50例源码

    2. **C#与VB.NET**:ASP.NET v2.0支持两种主要的编程语言,C#和Visual Basic .NET,它们都可用于编写后台代码。 3. **数据绑定**: - **DataSource控件**:用于连接数据库并提供数据源,如SqlDataSource、...

Global site tag (gtag.js) - Google Analytics