这个提法不太合理,个人觉得。只是工程部门原来的程序都是跑在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)创建对象调用
分享到:
相关推荐
标题所述的文档是关于如何使用.NET 2.0框架编写COM(Component Object Model)组件,并使其可供Visual Basic应用程序调用的教程。COM是Microsoft的一种组件技术,允许不同编程语言之间进行互操作。以下是对文档主要...
- **COM互操作**:.NET Framework 2.0允许.NET代码与传统的COM组件进行交互,这意味着你可以轻松地在.NET应用中调用COM组件,或者将.NET组件暴露为COM对象,从而实现与非.NET环境的集成。 - **CLR互操作**:公共语言...
《Apress.Pro.ASP.NET.2.0.in.VB.2005》是一本专为Visual Basic .NET 2005开发者编写的ASP.NET 2.0技术指南。这本书详细介绍了如何利用ASP.NET 2.0框架构建高效、功能丰富的Web应用程序。通过深入学习,读者将能够...
通过Ext.NET 2.0,开发者可以直接在C#或VB.NET中编写代码,利用.NET的强类型和面向对象特性,无需深入JavaScript语法,就能轻松实现复杂的前端界面功能。 1. **组件丰富**:Ext.NET 2.0 包含了大量的UI组件,如表格...
首先,ASP.NET 2.0的核心组件是.NET Framework 2.0,它提供了丰富的类库和工具支持,使得开发者可以使用C#、VB.NET等语言编写Web应用。在本项目中,我们可能会看到使用C#或VB.NET编写的后台代码,这些代码负责处理...
在ASP.NET 2.0中,开发人员可以使用更少的代码来实现更复杂的网页功能,这主要得益于其增强的数据集成能力和简化的工作流程。 1. ASP.NET 2.0 的核心改进 ASP.NET 2.0引入了许多新特性,旨在简化Web开发,包括控件...
4. **C#或VB.NET**:服务器端编程语言,编写处理逻辑和数据库操作。 5. **SQL Server**:可能作为后台数据库,存储留言信息。 【应用场景】 此类基于AjaxPro的留言本示例适用于学习和理解如何在ASP.NET 2.0环境中...
例如,它能够分析并可视化程序集的依赖关系,帮助开发者理解组件间的耦合程度和调用关系。此外,Reflector还可以反序列化XML序列化的对象,这对于调试和理解数据交换逻辑非常有用。 在.NET开发社区中,Reflector被...
《.NET Windows编程系列课程(21):ADO.NET2.0 和SQLCLR》是一门深入探讨.NET框架在Windows环境中与数据库交互的课程,特别是针对SQL Server 2005中的SQL Common Language Runtime (SQLCLR)特性。在这个教程中,我们...
1. **接口介绍**:SAP .NET Connector 提供了一组面向对象的.NET类库,使得.NET开发者能够利用C#、VB.NET或其他.NET语言编写应用程序,直接调用SAP RFC(远程功能调用)和BAPI(业务对象方法接口)。 2. **RFC支持*...
5. **案例分析**:课程可能会包含一些实际示例,比如在PHP中调用ASP.NET编写的数据库访问组件,或者在ASP.NET中利用PHP进行图像处理等。 6. **性能和安全考虑**:在实现互操作性的同时,讨论可能遇到的性能瓶颈以及...
《Expert .NET 2.0 IL Assembler》是一本深入探讨微软中间语言(IL)的专著,适合对.NET框架底层运作机制感兴趣或者希望提升.NET编程能力的开发者阅读。IL,全称为Intermediate Language,是.NET Framework中的核心...
在ASP.NET 2.0中,数据访问通常通过ADO.NET进行,这包括使用DataSet、DataTable、DataAdapter等组件。在本例中,我们将创建一个强类型的DataSet,它结合了.NET Framework的类型安全性和数据库的结构信息,使得代码...
它的主要组件包括公共语言运行库(Common Language Runtime, CLR)和类库,这些都为编写高效、跨语言的代码提供了便利。在这个框架下,开发人员可以利用C#、VB.NET等语言进行开发。 Winform是.Net框架的一部分,...
这样,一个类可以是C#编写的,而调用它的类则可以是VB.NET编写的。 3. **DLL库的使用**:可以分别用C#和VB.NET编写独立的类库,然后将这些类库编译成DLL文件。在其他项目中,可以引用这些DLL,无论它们是用哪种语言...
5. 互操作性:J#允许开发者调用.NET Framework中的类和方法,同时也支持.NET组件在J#应用程序中的使用,增强了不同语言之间的代码复用。 在实际应用中,J#.Net Version 2.0主要适用于以下情况: - Java开发者希望...
.NET 2.0 是微软发布的一个重要的软件开发平台,它不仅支持多种编程语言(如 C#、VB.NET 等),还提供了一套丰富的类库,使得开发者能够更加高效地构建跨平台的应用程序。.NET 2.0 的主要特点包括: - **CLR...
2. **C#与VB.NET**:ASP.NET v2.0支持两种主要的编程语言,C#和Visual Basic .NET,它们都可用于编写后台代码。 3. **数据绑定**: - **DataSource控件**:用于连接数据库并提供数据源,如SqlDataSource、...
在IT领域,跨语言通信是常见的需求之一,本篇文章主要探讨如何在VB6.0环境中调用C#编写的Dll文件。VB6.0和C#属于不同平台,但通过COM(组件对象模型)和.NET Framework的支持,可以实现两者之间的交互。 首先,我们...