VS2017 C++调用C#生成的COM组件

本文详细介绍了如何在VS2017中使用C#创建COM组件,并在C++项目中调用这些组件。首先,通过新建C#类库并设置为COM可见,然后为程序集签名并编译。在C++项目中,将生成的.tlb文件引入,配置附加包含目录,最后成功调用并运行COM组件。
摘要由CSDN通过智能技术生成
  • C#生成COM组件:

VS2017 ——> 新建 ——> 项目 ——> Visual C# ——> 类库(.NET Framework)

*注意:如果选择 "类库(.NET Standard)" 后面可能无法选择 "为COM互操作注册",同时记住选择的.NET Framework的版本

示例:新建的工程名为 ComExample,重命名Class1.cs为ComTest.cs,添加 System.Runtime.InteropServices

1.添加外部调用接口,C++只能调用COM中的接口,无法直接调用类和函数

[Guid("7B25B7CE-2D31-47BE-9066-9E0B1FDA1F89")]
public interface ComTestInterface
{
    [DispId(1)]
    int comTestMul(int a, int b);
}

2.添加事件接口

[Guid("80C1DA98-0D57-42B3-B3F6-A496FB684B1C"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ComTestEvents
{

}

3.添加具体的类

[Guid("3AFE4870-5760-4144-8339-C8676D97174E"), 
 ClassInterface(ClassInterfaceType.None), 
 ComSourceInterf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值