C++调用Net Com类

背景

将Net类库注册为允许互操作的COM组件后,可以更加方便被第三方语言类似C++调用。如果想要了解更多C++操作Net类库的方式,可以查看我的另一篇博文概述

环境说明

Net类库开发

下面如图所示就不赘述了,创建没什么特别的Net类库和C++控制台

Net类库

Cplus控制台

然后先创建一个ITest接口,声明如下

Net接口声明

对于有事件的声明如下

Net事件接口声明

下面就是接口实现,具体看图示

Net方法实现

至此,Net代码级的操作就够了,下面开始设置COM的有关信息。

Net设置为COM互操作注册

Net使程序集COM可见

Net程序集签名

Net程序集签名密钥设置

到这就全部完成了,在Net项目上面右键编译生成,会在输出目录生成如下文件,同时,通过注册表编辑器可以发现在计算机\HKEY_CLASSES_ROOT\下多了个NetLibrary.Test的项目,CLSID就是Test类的Guid特性值。

因为Vs比较智能,所以右键编译的时候,已经自动给注册到注册表中去了,对于不是用管理员权限启动的vs,会报错误,只需要以管理员权限启动就可以了。

Net生成输出文件

如果需要在其它环境注册或者卸载,参考如下脚本

Net Com注册

C++ 控制台开发

Cplus测试代码

至此,就完成了C++调用Net类库

附件

代码案例

参考

COM 类示例(C# 编程指南)

posted @ 2019-12-17 17:27  tonyctp  阅读(696)  评论(0编辑  收藏  举报