C#编写COM组件的方法分析

发布时间 - 2026-01-11 01:56:28    点击率:

本文实例讲述了C#编写COM组件的方法。分享给大家供大家参考,具体如下:

1、新建一个类库项目

2、将Class1.cs改为我们想要的名字
问是否同时给类改名,确定

3、修改Properties目录下面的AssemblyInfo.cs
ComVisible属性设置为True

4、项目菜单->MyLib属性
找到“生成”选项卡
往下看,找到“为 COM Interop 注册”勾上

5、继续往下,找到“签名”选项卡
  勾上“为程序集签名”
  在下面的下拉框里面选择“ <新建...>”

6、在弹出的对话框里面,输入MyLib。。或者随便取个名字
  去掉使用密码保护文件的选项

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

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、在javsScript里面试试.

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《C#窗体操作技巧汇总》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。


# C#  # 编写  # COM组件  # 如何在C#中调用COM组件  # c#创建vc可调用的com组件方法分享  # C# 无需COM组件创建快捷方式的实现代码  # c# COM组件原理详解  # 程序设计  # 选项卡  # 相关内容  # 要去  # 感兴趣  # 数据结构  # 给大家  # 任何一个  # 的花  # 往下  # 设置为  # 更多关于  # 所述  # 对话框  # 使用技巧  # 面向对象  # 新建一个  # 有一个  # 往下看  # 类库 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: HTML 中动态设置元素 name 属性的正确语法详解  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何基于云服务器快速搭建网站及云盘系统?  Laravel distinct去重查询_Laravel Eloquent去重方法  智能起名网站制作软件有哪些,制作logo的软件?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  如何快速生成ASP一键建站模板并优化安全性?  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel用户密码怎么加密_Laravel Hash门面使用教程  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  bootstrap日历插件datetimepicker使用方法  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何在万网主机上快速搭建网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  简历在线制作网站免费版,如何创建个人简历?  JavaScript Ajax实现异步通信  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  JavaScript常见的五种数组去重的方式  EditPlus中的正则表达式 实战(4)  如何正确下载安装西数主机建站助手?  Bootstrap整体框架之CSS12栅格系统  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何确保FTP站点访问权限与数据传输安全?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel怎么使用artisan命令缓存配置和视图  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  简单实现jsp分页  网站制作软件有哪些,制图软件有哪些?  详解vue.js组件化开发实践  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  怎样使用JSON进行数据交换_它有什么限制  如何用搬瓦工VPS快速搭建个人网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  js实现点击每个li节点,都弹出其文本值及修改  如何在宝塔面板创建新站点?  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何在云指建站中生成FTP站点?