侧边栏壁纸
  • 累计撰写 62 篇文章
  • 累计收到 17 条评论
C#

c#编写com组件【完整版】

一缕清风
2021-01-27 / 0 评论 / 55 阅读 / 正在检测是否收录...

简介

开发过程中有时候会需要与其他语言对接,com组件是一种不错的方式,只要把类库设置成com组件并注册到系统中,这样就可以与其他语言交互,本文完整介绍了从com组件编写到com组件注册全过程。

使用

新建.net framework类库项目
创建项目.jpg新建类库.jpg

更改项目属性为COM组件
项目属性.jpg
设置com.jpg
使com可见.jpg
设置签名.jpg

编写COM代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace mycom
{
    /// <summary>
    /// 每个COM类,都必须有一个接口定义,供其他语言调用。
    /// </summary>
    [ComVisible(true),
        Guid("e5de703f-cf41-1540-6608-ab2e160d622c"),
        InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface IDemoCom
    {
        [DispId(1)]
        int Add(int a, int b);
        [DispId(2)]
        double Add(double a, double b);
        [DispId(3)]
        long Add(long a, long b);
    }

    /// <summary>
    /// 继承接口,实现COM类
    /// </summary>
    [Guid("4fef63b4-2745-97bc-2303-087341de71d3"),
        ClassInterface( ClassInterfaceType.None),
         ComSourceInterfaces(typeof(IDemoCom))]
    public class DemoCom : IDemoCom
    {
        public int Add(int a, int b)
        {
            return a + b;
        }

        public double Add(double a, double b)
        {
            return a + b;
        }

        public long Add(long a, long b)
        {
            return a + b;
        }
    }
}

注册COM组件,首先以管理员的身份运行cmd,然后运行如下指令。
定位路径:cd /d C:WindowsMicrosoft.NETFramework64v4.0.30319
开始注册:Regasm com组件路径.dll /tlb: mycom.tlb /codebase
com注册成功.jpg

结语

由于com组件是.net所编写,所以目标电脑一定要先安装好对应版本的.net framework框架。

2

评论 (0)

取消