1、新建一个类库项目
2、将Class1.cs改为我们想要的名字(例如:MyClass.cs)
问是否同时给类改名,确定
3、修改Properties目录下面的AssemblyInfo.cs
ComVisible属性设置为true
改成下图
4、项目->MyLib属性
切换到“生成”选项卡,在底部位置,勾选“为COM互操作注册”
切换到“签名”选项卡
勾选“为程序集签名”
在下面的下拉框里面选择“<新建...>”
5、在弹出的对话框里面,输入MyKey。。或者随便取个名字
去掉“使用密码保护文件(P)”的选项
6. 将需要封装的vb文件引用进来
7、开始编码,任何一个公开的类,必须有一个开通的接口定义
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using ******; //需要封装的vb文件
namespace MyCOM
{
[ComVisible(true)]
[Guid("5F4649F2-9780-465E-9E78-D55C61218773")]
public interface MyCOM_interface
{
int add(int x, int y);
}
[ComVisible(true)]
[Guid("62228741-D2E0-4C32-97D0-022AC58E0D8C")]
[ProgId("MyCOM.Class1")]
public class Class1 : MyCOM_interface
{
static ****.Program mysdk = new ****.Program();
public int add(int x, int y)
{
return mysdk.add(x, y);
}
}
}
8. 点击编译, 如果成功将生成相应的**.dll和**.tlb文件
9. 注册com组件
运行cmd, 使用.net的regasm.exe进行注册 eg: regasm.exe **.dll (/codebase)
注: 如果按照上述方法生成了**.snk签名文件, 需要将其和**.dll放在一起才能注册成功
10. 使用COM组件