C#编写COM组件[转]

1、新建一个类库项目 
 
2、将Class1.cs改为我们想要的名字 
 
问是否同时给类改名,确定 
 
3、修改Properties目录下面的AssemblyInfo.cs 
ComVisible属性设置为True 
 
4、项目菜单->MyLib属性 
找到“生成”选项卡 
 
往下看,找到“为 COM Interop 注册”勾上 
 
5、继续往下,找到“签名”选项卡 
  勾上“为程序集签名” 
  在下面的下拉框里面选择“ <新建...>” 
 
6、在弹出的对话框里面,输入MyLib。。或者随便取个名字 
  去掉使用密码保护文件的选项 
 
7、开始编码,任何一个公开的类,必须有一个 I开通的接口定义 
C# code

using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace MyLib {     [ComVisible(true)]     [Guid("2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F76")]     public interface IMyClass     {         void Initialize();         void Dispose();         int Add(int x, int y);     }     [ComVisible(true)]     [Guid("EA2F140A-108F-47ae-BBD5-83EEE646CC0D")]     [ProgId("MyLib.MyClass")]     public class MyClass : IMyClass     {         public void Initialize()         {             //nothing todo         }         public void Dispose()         {             //nothing todo         }         public int Add(int x, int y)         {             return x + y;         }     } }

8、GUID属性里面的那个字符串,在“工具”菜单下面,“创建 GUID” 
  选择 Registry Format,然后复制 
   
  注意在[Guid("....... 这个里面要去掉GUID前后的花括号 
9、编译它 
在命令提示符下面,进入Dll所在的目录 
用 gacutil /i MyLib.dll 将这个DLL加入的全局缓存里 
然后用 regasm MyLib.dll 注册这个dll 
 
10、在VBScript里面试试。。。 
HTML code

<script language="VBScript">
Dim o : Set o=CreateObject("MyLib.MyClass")  
  o.Initialize     MsgBox "1 + 2 = " & o.Add(1,2)     o.Dispose     Set o=Nothing </script>

转载于:https://www.cnblogs.com/jjj250/archive/2010/12/28/1918514.html

C#学习笔记002——VS2019 创建COM组件详细步骤 一、创建新项目 二、更改项目属性 三、编写导出接口 (1)新建一个“接口类” (2)为接口打上Guid、InterfaceType特性,Guid必须唯一 粘贴,并去掉“{”和“}” [Guid(“A0CF129B-2AD0-4822-AC95-CC76E1274030”),InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] InterfaceType表求向COM公开的方式,这里选择为以调度的方式向COM公开。 对了,不能忘了加上“u 阅读详情

相关推荐

COM接口

COM 接口什么是 COM?接口的结构与描述使用 C++/C/Delphi 描述接口IDL接口的标识COM 数据类型MIDL 编译器IUnknown 接口接口继承接口查询规则 什么是 COMCOM 全称为 Component Object Model,是微软为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在 COM 构架下,人们可以开发出各种各样的功能专一的组件,然后...

Blueware多媒体之窗 1万+

COM组件开发以及调用( C#)

开发工具:Visual Studio 2008,Eclipse3.7 Indigo,Visual C++ 6.0 一、用C#编写一个COM组件 1.       打开Visual Studio2008,[文件]->[新建]->[项目] 2.       项目类型=Visual C#,模版=类库,名称=MyCom,解决方案=MyCom,点击[确定] 3.

Dances with Wolves 的专栏 1864

一个基于COM组件的Matlab与C#混合编程实例

基于COM组件的Matlab与C#混合编程的一个小例子

wangzhenyang2的博客 3361

[]C++和C#编写调用COM组件

摘要:现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。关键字:VC6.0编写调用COM VS2005中C#编写和调用COM VC6.0和VS2005之间互相调用COM正文:前一阵在工作中

a0cake的专栏 365

C++和C#编写调用COM组件(

摘要:现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。关键字:VC6.0编写调用COM VS2005中C#编写和调用COM VC6.0和VS2005之间互相调用COM正文:前一阵在工作中

wgklovechj的专栏 417

[]C++和C#编写并且相互调用COM组件

前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:1、在VS2005中,C#编写DLL并使用C++调用2、在VS2005中C#编写COM组件,使用VC6.0调用3、在VC6.0中编写COM组件,使用VS2005 C#调用4、在VC6.0中编写COM组件,使用VC6.0调用其中每个类型都写了两个程序,一...

weixin_30919919的博客 84

JavaScript学习笔记之JavaScript调用C#编写COM组件

1、新建一个C#类库项目:MyCom; 2、修改 Properties 目录下的 AssemblyInfo.cs(程序集文件) 中的 ComVisible 属性为 true; 3、项目->属性->生成,勾选 “为COM互操作注册” ; 4、项目->属性->签名,勾选 “为程序集签名” ,在下面的 “选择强名称秘钥文件” 下选择新建,在弹出的窗口中的 “秘钥文...

weixin_30670925的博客 129

QT/C++调用C#代码COM方式【亲测可用】

https://www.cnblogs.com/guohu/p/4889067.html全部流程试过了没问题 但是很坑的一点是 每台电脑第一次使用都需要对COM组件进行注册 https://blog.csdn.net/business122/article/details/25687139注册的详细流程这篇文章里有写 下面的COM组件注册的方法截取自这篇文章 并对其中的一些问题进行了补充 如:REGASM命令无法使用的解决方法 注册COM组件的方法 如果你刚调用dll和则build生成dll是在...

PeiNiKanXue的博客 1282

深入探究C#编写COM组件的实践指南

在面向对象的编程中,接口(Interface)和类(Class)是构建软件系统的基础组件。接口定义了一组方法,这些方法可以被类实现,但它本身不提供方法的实现。它相当于一个协议或契约,要求实现它的类必须提供这些方法的具体实现。类则是接口的具体表现,它可以实现一个或多个接口。接口是类与类之间通信的桥梁,通过接口定义的方法,不同的类可以进行交互,而无需了解对方的具体实现。在C#中,接口使用interface关键字进行声明。例如,可以定义一个IAnimal接口,其中包含一个。

weixin_32324637的博客 1326

C#.NET com组件编写

C#.NET com组件编写 设置工程属性:“生成”-> “为COM Interop注册”。 1 更改AssemblyInfo.cs……设置COM可见 1 建立源码 1 注册COM组件DLL 3 使用HTML中VBS脚本测试 3 提示不能创建 ACTIVEX 控件…… 4 提示找不到路径 4 ----作者Attilax , 1466519819@qq.com---

attilax的专栏 6509

C#如何编写调用COM组件的程序

VS C#.net如何编写调用COM组件的程序? 请给出一个开发过程的例子. 我引用了一个MS 的Rich Edit的Com组件,在WebForm1.aspx中却没有该组件的名称,我给组件一个Id(RichEdit1),还是无法应用,请高手指点. 谢谢! --------------------------------------------------------------- 首先感谢您使

soonsnipe的专栏 6996

python调用com组件_Python调用C# Com dll组件的过程详解

下面小编就为大家带来一篇Python调用C# Com dll组件实战教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB、CBC、CFB、OFB,这四种用的是RijndaelManaged类),Python下Crypto库AES也只有这四种模式,进而Python下无法...

weixin_39624733的博客 1748

C++调用C#创建的COM组件

组件基本概念 COMComponet Object Model)组件是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。 .

liulv_yan的博客 3663

Delphi 7 调用C# 编写com组件DLL

成功注册了导出到“SMUtilMed\bin\Debug\smutilmed.tlb”的程序集和类型库。查找regasm.exe,一般在.net的目录下,可以直接拷拷贝到生成DLL的目录,方便操作。运行 regasm /tlb:smutilmed.tlb smutilmed.dll。可以选择Create Unit,只生成单元文件并引入项目内,不用安装元件到面板上。运行 gacutil.exe gacutil -I XXXX.dll。生成的引入文件内,应该有对应的方法,如果没有,请检查C#内的各项定义。

bell的专栏 1547

C#编写一个进程外的COM组件

我在以前的一篇文章《COM互操作 - 在VB 脚本里面使用.NET类型》里面写过如何在COM客户端程序里面使用.NET组件,但是这些.NET组件都属于进程内的组件,即COM客户端需要将CLR和.NET组件都加载进自身进程的内存空间里面才能使用。上一次在MSDN中文论坛上看到有网友问如何使用C#编写一个进程外的COM组件,由于在使用regasm.exe注册.NET组件的时候,regasm.exe将.

Donjuan的专栏 4013

C++调用C#编写com组件方法

C#com组件编写可以参照https://www.jianshu.com/p/be7f61ba7c86 下面主要讲解如何调用 首先在Visualstudio中新建项目,注意是win32应用程序 关键点到了,因为涉及到跨语言的调用,因此会使用到代码托管的功能,需要勾选 /clr框框里的选项,公共语言运行时支持 然后导入dll文件,具体导入方法可以参考我的另一篇文章,https:/...

qwezhaohaihong 1386
上一篇: JSF kick start [转]
下一篇: [转]c#创建access查询
didui8202
博客等级 码龄10年 3粉丝 109原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值