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

首先我们需要新建.net framework类库项目。
新建.net framework新项目
新建.net framework类库项目

然后右键项目属性,更改项目属性为COM组件,如下图。
c# 设置项目属性
c# 设置com属性
c# 设置使com可见性
c# 设置COM签名

封装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:\Windows\Microsoft.NET\Framework64\v4.0.30319(Framework框架路径根据实际情况更改)
  • 开始注册:Regasm com组件路径.dll /tlb: mycom.tlb /codebase

com注册成功

com组件是.net c#语言所编写,所以目标电脑一定要先安装好对应版本的.net framework框架,否则会报找不到依赖环境。

最后修改:2022 年 09 月 29 日
如果觉得我的文章对你有用,请随意赞赏