C#编写COM组件示例

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

J 取稍

■it:rosoft Visual Studio

c#编写组件

3、修改 Properties 目录下面的 Assemblylnfo.cs

问是否同时给类改名,确定

「i 赳逹解决方実的目呈

□心tc

1、新建一个类库项目

悠正在重命名1个丈件°您也想在这亍对代玛元素“口皐丸汁的所有引用的项且中执行重命名吗?

「- Vi»*l M

Studi 9 已安It 的49柢

Wmdowi;

Offic* ^Windows 应用程序 邙类J#

+習意设备

初学者工具包

^Iindswi 校件障 .黑控制色应用程睜 口没备应用谡洋 立£氐住1工件薄

^Outl»ok

-茸他语茗

+ Vi lu*l Bhli C 我的崔笛

* VnuU J*

+ ViiukL Ctt

申攢累題机極检

対布式系卿拱方矍 +直纯顼目尖型 FKP Fyoj^cti * iftf 试顶目

用于创建c»食库(丑“的項自

取目类型疋)

▼ X

1解决方秦资瀝管理器-解决方案'畑.

V

為建固亘艮 ...

r

J 嬉决方案“NlyLib" Cl 不项引

.-1 耳 I^Lib

■+ 宜 &

』弓I 用

电阪由臣詞心|

Visible 属性设置为True

//将ComVi^bl^设置为£心^使此程序集中的类型

//对C0H 组件不可见.如果需要从口州诂问此程序集中的类型‘ //则将该类挈上的Co^Visibl^屈性设置划讣晒 L assembly : CoirJ/i sible (true)]

4、项目菜单->MyLib 属性 找到“生成”选项卡

HyLib* MyClasE. cs

应用程序

配置(E ):论

常规 - ------

条件編

回定义:

生成束件

调试

5、继续往下,找到“签名”选项卡 勾上“为程序集签名”

在下面的下拉框里面选择“ <新建…〉

签名* 优谒分柝

6在弹出的对话框里面,输入 MyLib 。。或者随便取个名字 去掉

使用密码保护文件的选项

往下看,找到“为In terop

注册”勾上

上为11序薙签容 谱释徑名拆惡旃艾件Of)

孫迟签容后*西目将不g 匡打,也不紐进石调试.

7、开始编码,任何一个公开的类,必须有一个I开通的接口定

C# code

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

n amespaceMyLib

{

[Visible( true )]

[Guid( "2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F76"

public in terface IMyClass

{

void In itialize();

void Dispose();

int Add( int x, int y);

}

[Visible( 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;

}

}

}

9、编译它

在命令提示符下面,进入

用gacutil /i MyLib.dll 然后用regasm MyLib.dll GUID ”

8、GUID属性里面的那个字符串,在“工具”菜单下面,“创

建选择Registry Format ,然后复制

注意在[Guid("…….这个里面要去掉GUID前后的花括号

Dll所在的目录

将这个DLL加入的全局缓存里

注册这个dll

小C:\fIHDOVS\syste■罷让・d” 陀p

F: \HyLihXJ)inxJte le^se >cd Zd E- XHyLlhxhinMle lease

Fi^HyLibxhinsHele^se>gacutil /i MyLib^d11

piErasoft ”HKT Glalm 1 刖就nhly Cdche (Jt Uer^Ion 2 F0.S0727.42

fcc»puriyht rticrosqf t Gorpvrat ion« All rights reserved-

腥评u己咸功潘加到缓存中

E;^JlyLibMiin^elflflseJre^asn HsfLib.411 zt lb:MyLih*t lb rtici'osoftCW> .NET Fzn的叶k $呈序集注册延用工号2,0,SB727.42 版枚所S flicro^ft Corporvit Un 19$B 2B04O {呆留所有杈利。

儂雒辭蠶到隹ZMZWTZ必£Hb “前程序集利类型库

IF: Mlyl i b'dtiift\51e leased

10、在VBScript里面试试。。。

HTML code