.Net提供三种途径供我们导入一个COM组件

转载 2007年09月18日 13:15:00
.Net提供三种途径供我们导入一个COM组件:
      - 通过Visual Studio .Net提从的“添加引用”功能
      - 通过命令行方式——TLBIMP.EXE
      - 使用System.Runtime.InteropServices.TypeLibConverter类编程实现导入功能
    第一种方式无须赘述,非常的简单。第三种方式我会说明PIA的用法的同时,对此方法的使用加以说明。不过,我的水平不高,各位不要要求太高喽。^_^ 言归正传,本文关注的是第二种方式。我们可以直接使用此工具提供的最简单的调用方式:TLBIMP TestObj.dll。但需要提醒各位的是,如果我们使用这种方式导入一个COM组件的话,我们将“牺牲”原有的COM组件,这样做是很危险的。个人认为,最简单的调用方式是TLBIMP TestObj.dll /out:interop.TestObjLib.dll。这样,执行后将会产生一个名为interop.TestObjLib.dll的COM Interop。下面将给出简单的例子以说明整个过程。
1、首先用VB写的一个简单的ActiveX Dll
'Project name is TestObjList, class name is TestObj
Option Explicit

Public Function Add(ByVal iValue As Integer) As Integer
    Add = iValue 1
End Function

2、使用命令行工具导入这个COM组件
TLBIMP TestObjLib.dll /out:interop.TestObjLib.dll

3、在一个.Net Windows Forms中写一段调用此组件的测试代码
using interop.TestObjLib;
private void button1_Click(object sender, System.EventArgs e)
{
    TestObjClass obj = new TestObjClass();
    int num = 1;
    MessageBox.Show(obj.Add(num).ToString());
}

    此处需要说明一点,当TLBIMP.EXE在生成Interop装配件时会在原COM中的类的名字后面加上一个"Class"。调用时,请各位注意。

相关文章推荐

vb.net封装组件成com的方法

vb.net封装组件成com的方法    前几天一直在研究如何将.net的组件封装成com供非托管代码调用。上网查资料,查书,试验,最后测试了vb.net,c#,vc++.net 等多种语言,都没...

COM组件设计与应用(十六) 连接点(vc.net)

COM组件设计与应用(十六) 连接点(vc.net) 作者:杨老师 下载源代码 一、前言   上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了。 二、原理 ...

.net C# COM组件,实现EXCEL自动转换格式与如何退出EXCEL Process

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst...
  • kywds
  • kywds
  • 2012年04月30日 10:20
  • 340

利用RegSvr32来注册.NET COM组件

·        背景   前一段时间由于业务关系,须要在一个比较旧的系统编写一个补丁。原系统使用VB编程,但如果要使用VB来实现这个补丁的内容,对于我这个并不怎么接触VB的人来说太头痛了。由于...

ASP.NET检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败 的解决方案

出现此问题的原因:调用EXCEL组件时没有权限   1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"   2.依次双击"组件服务"->"计算机"->"我的电脑"->"DCO...

PB 调用.NET COM组件

对于现在使用PB和.NET同时开发的项目,现在.NET已经有的功能,想在PB下调用,只能把.NET做成COM组件,再在PB中调用。 方法如下:    一.在.NET中新建类库    ...

COM与.NET调用DCOM组件

COM组件已经部署好了,接下来就是调用了既然我们是部署了COM+服务器,我们这里就讲下怎么远程调用COM组件。 在创建好VC的WIN32项目后,在预编译文件中引用。 #ifndef _WI...

在Windows Server 2008 X64中通过.NET程序调用32位com组件

在Windows Server 2008 X64中通过.NET程序调用32位com组件  2008-08-30 12:38:14 来源:WEB开发网 【减小字体增大字体】  关注谷汶锴的微博 核心...

ASP.NET应用技巧:非托管COM组件的使用

众所周知,asp.net是基于通用语言运行库创建的,也就是所谓的托管执行环境。生成的代码称为托管代码。编译器能够从源代码的描述中产生元数据信息,而运行库又从元数据中获得托管代码的信息。而我们编写的组件...

用Add-in Express .NET创建一个COM加载项项目

用Add-in Express for Office and .NET创建一个COM加载项项目的操作并不复杂,下面将会讲述如何创建一个COM加载项项目。 在运行Visual Studio前确保你有管...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.Net提供三种途径供我们导入一个COM组件
举报原因:
原因补充:

(最多只允许输入30个字)