用C++写COM组件并用C#调用

1、以管理员身份打开vs,特别重要,否则会不成功

这里写图片描述

2、新建一个c++ ATL项目,如图,全部为默认设置
这里写图片描述

3、添加一个ATL简单对象,从添加类中添加,如图
这里写图片描述
这里写图片描述

4、添加一个方法,注意是在类视图中添加,并按照下图设置,其余部分均为默认
这里写图片描述
这里写图片描述

5、然后在test.cpp文件中添加代码,生成。一个com组件就做出来了。

STDMETHODIMP Ctest::Add(LONG a, LONG b, LONG* c)
{
    // TODO: 在此添加实现代码
    *c = a + b;
    return S_OK;
}

这里写图片描述

6、在c#中添加引用,生成的dll文件路径如图。
这里写图片描述
引用后为:

7、添加代码并运行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using ATLProject1Lib;

namespace csharpMatlab
{
    class Program
    {
        static void Main(string[] args)
        {
            test a = new test();
            Console.WriteLine(a.Add(4, 7));
        }
    }
}

这里写图片描述

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页