一、用C#编写一个COM组件

1.       打开Visual Studio2008,[文件]->[新建]->[项目]

2.       项目类型=Visual C#,模版=类库,名称=MyCom,解决方案=MyCom,点击[确定]

3.       编辑Main.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyCom
{ public interface MyInterface
{
int add(int a, int b); string sayHello(string msg); string mergeString(string a, string b);
} public class MyClass : MyInterface
{
public int add(int a, int b)
{
return a + b;
} public string sayHello(string msg)
{
return "Hello, " + msg;
} public string mergeString(string a, string b)
{
return a + b;
}
}
}

  

4.       编辑AssemblyInfo.cs文件

将assembly:ComVisible(false)改为true

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

在[应用程序]选项卡中点击[程序集信息…]

勾上[使程序集COM可见],然后点击[确定]

在[生成]选项卡上勾上[为COM互操作注册]

在[签名]选项卡中勾上[为程序集签名],选择下拉框中的<新建…>

秘钥文件名称=MyCom,去掉[使用密码保护密钥文件]的勾,点击[确定],最后保存

6.       生成Dll,tld文件,选择菜单栏上的[生成]->[生成MyCom],进入项目的根目录下的bin\Debug目录会发现MyCom.dll, MyCom.pdb, MyCom.tlb文件已经生成

7.       注册MyCom.dll文件,进入SDK命令行,CD到MyCom工程的根目录下的bin\Debug目录

然后运行regasm MyCom.dll /tlb:MyCom.tlb命令

下面用regedit命令进入注册表,查看HKEY_CLASSES_ROOT下的MyCom.MyClass已经存在了,则说明已经完成注册。

再继续运行gacutil –i MyCom.dll将程序集添加到缓存中

到此为止MyCom这个COM组件的开发已经完成了。

C# COM组的开发以及调用的更多相关文章

  1. C#开发和调用Web Service

    http://blog.csdn.net/h0322/article/details/4776819 1.1.Web Service基本概念 Web Service也叫XML Web Service ...

  2. IOS 开发,调用打电话,发短信,打开网址

    IOS 开发,调用打电话,发短信,打开网址   1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString: ...

  3. WCF服务开发与调用的完整示例

    WCF服务开发与调用的完整示例 开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IServi ...

  4. c++简单的ATL COM开发和调用实例(转)

    c++简单的ATL COM开发和调用实例 1.打开VS2010,新建ATL COM 项目,步骤:“文件” -->“新建” -->“项目”,选择“Visual C++” -->“ATL ...

  5. Windows 8 应用开发 - 异步调用

    原文:Windows 8 应用开发 - 异步调用     不论是桌面客户端还是Web应用通常会出现处理时间较长的操作,为了在这段时间内不影响用户与应用之间的交互体验,开发人员通常会使用异步调用技术,使 ...

  6. QuickWebApi2:使用Lambda方式,完成对WebApi的开发和调用-文档的生成

    续 QuickWebApi:使用Lambda方式,完成对WebApi的开发和调用 上一篇完成了主要的功能,本次修订主要重构了对接口文档的生成规范,使之可读性更佳,甚至可以作为接口文档进行发布(当然,在 ...

  7. QuickWebApi:使用Lambada方式,完成对WebApi的开发和调用。

    QuickWebApi 目的:使用Lambada方式,完成对WebApi的开发和调用. 缘由:为了解耦服务和展现,将越来越多的使用WebApi提供各种服务:随着服务的细化,WebApi的接口将越来越多 ...

  8. Android NDK开发及调用标准linux动态库.so文件

    源:Android NDK开发及调用标准linux动态库.so文件 预备知识及环境搭建 1.NDK(native development Kit)原生开发工具包,用来快速开发C.C++动态库,并能自动 ...

  9. 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)

    注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...

随机推荐

  1. canvas小案列-绚丽多彩的倒计时

    本次随笔中,我将实现一个绚丽的倒计时效果,这个效果主要是结合canvas和js实现的,具体代码如下 index.html文件 <!DOCTYPE html> <html> &l ...

  2. 201671010418 刘佳 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 (1)掌握软件项目评审会流程: (2)反思总结课程学习内容. Start: ...

  3. python应用-综合应用题解决

    题目: A,B,C,D,E五个人捕鱼,不计其数,然后休息, 早上A第一个醒来,将鱼均分成五份,把多余的一条鱼扔掉,拿走自己的一份, B第二个醒来,也将鱼均分为五份,把多余的一条鱼扔掉,拿走自己的一份. ...

  4. Lombok 学习资料

    Lombok 学习资料 网址 Lombok 官方网站 https://projectlombok.org/features/all Lombok:让JAVA代码更优雅 http://blog.didi ...

  5. JQuery系列(6) - jQuery设计思想

    jQuery是目前使用最广泛的javascript函数库. 据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. JQuery设计 ...

  6. Helm 安装部署Kubernetes的dashboard

    Kubernetes Dashboard 是 k8s集群的一个 WEB UI管理工具,代码托管在 github 上,地址:https://github.com/kubernetes/dashboard ...

  7. 一个使用vue和echarts结合的demo

    前端框架真的很神奇,接触了几天vue.js,用它结合echarts做一个数据分析图,效果如下: 附上源码地址:https://github.com/qingguoYan/orderVue.git

  8. placeholder 效果的实现,input提示字,获取焦点时消失

    <!doctype html><html><head><meta charset="utf-8"><title>plac ...

  9. python语言(三)文件修改、函数、json操作、监控日志代码、高效读取文件

    1.文件操作(2)   代码 f = open('a.txt','a') # "a" 如果源文件不在,会自动创建 f.write('abc') result = f.read() ...

  10. linux 打印当前工作目录

    pwd