1、项目中要使用到com组件,于是了解了一下com,并根据《C#高级编程》中关于com的介绍用vs创建了一下com,用于实验。以下均根据书中的demo做一遍,熟悉一下而已。

2、创建CoM组件不能使用C++或VB2010,而应使用VB6.0或C++。以下使用ATL、C++、VS2010.

  使用C#或VB9.0可以创建.NET组件,VB9.0及C# 通过一个封装器就可以把该组件用作COM对象,而封装器是真正的COM组件。

2.1 创建ATL项目and finish.

2.2 往project 中添加类。

2.3 往IWelcome接口中添加方法:

2.4 编辑.idl文件,往接口中添加自定义属性,改变C# RCW生成的类和接口的名称。

2.5 添加IMath接口:

复制IWelcome接口的定义并做修改,其中UUid可以用guidgen生成。

2.6 修改COMDemo.h文件

2.7 在COMDemo.cpp中实现各函数:

2.8 build and generate "COMServer.dll"

2.9 使用工具生成互操作程序集

tlbimp COMServer.dll /out:Interop.COMServer.dll

2.10 在电脑中注册新生成的COMServer组件。

cmd切换到com组件所在的目录,

运行:regsvr32 COMServer.dll 进行注册

运行:regsvr32 /u COMServer.dll则进行反注册

2.11 在C# 项目中使用COM组件

1)、添加com引用(注册了COM组件之后才会在此显示出需要的组件)

2)、添加namespace

3)、使用COM对象并释放

4)、结果:

5)、注意事项:

COM对象在不再使用的时候需要释放,因为COM使用本地内存堆,而.net对象使用托管的内存堆。垃圾回收器只负责回收托管的内存。

2.12 使用C#的动态语言,利用COM的IDispath接口,不使用互操作程序集直接使用COM组件:

此时项目中无需添加COM组件的引用,亦无需将COM组件放入运行目录中,只需客户机中已经注册了COM即可。

转载于:https://www.cnblogs.com/hshuzhao/p/4198718.html

VS2010 C++ 创建COM组件相关推荐

  1. 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )

    文章目录 一.StatefulWidget 组件 二.创建 StatefulWidget 组件 三.MaterialApp 组件 四.Scaffold 组件 五. 相关资源 一.StatefulWid ...

  2. 使用angular2 自带的指令,快捷创建服务,组件等!

    为什么80%的码农都做不了架构师?>>>    使用ng 指令创建一个组件! ng g component produce 可以直接创建指令并更新app.module.ts; ng ...

  3. 用C#创建COM组件全过程

    用C#创建COM组件看来是个很简单的功能,但因为此类文章较少,还是有很多不明白的地方需要学习.本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用. 本文详细阐述如何用C#创建COM组件,并能 ...

  4. vue怎么自己创建组件并引用_Vue 实现创建全局组件,并且使用Vue.use() 载入方式

    自定义vue组件,一般是局部引用的方式载入,使用的时候,在应用的组件中使用 import moduleName from 'module' 导入,在components中注册 {{info.title ...

  5. 在Matlab2006a中如何创建.net组件

    在Matlab2006a中如何创建.net组件 为了创建一个.NET组件,你必须首先写一个M-Code(或者使用已存在的代码)然后在MATLAB Builder for .NET中创建一个工程以打包这 ...

  6. react中创建一个组件_如何使用React和MomentJS创建一个Countdown组件

    react中创建一个组件 Recently I had to create a Countdown for one of my other projects, and I thought that i ...

  7. render注册一个链接组件_详解vue 动态加载并注册组件且通过 render动态创建该组件...

    基于 iview Tabs 组件实现 功能:为每个 tab 动态创建不同的.特定的组件内容,而不需要大量的 import 组件并进行 component 注册 Index.vue import loa ...

  8. Vue.js 3 Step 创建一个组件

    Step1:Vue.extend()创建组件 Step2:Vue.component()注册组件,注册的标签一定要用小写 Step3:挂载点使用组件 <!doctype html> < ...

  9. 【译】Vue 的小奇技(第七篇):在 vue-multiselect 基础上创建 ImageSelect 组件

    原文地址:Create an ImageSelect component on top of vue-multiselect 原文作者:Alex Jover 译者:程序猿何大叔 特别声明:本文是作者 ...

最新文章

  1. Linux系统支持的目录文件有,【技术支持】linux操作系统有哪些文件和目录操作相关命令?...
  2. yii2使用select2
  3. angularjs ngRoute的使用简单例子
  4. 基于SNN脉冲神经网络的FPGA实现介绍
  5. Jdk 和 jre 的 关系和区别
  6. mysql 毫秒比较_MYSQL的毫秒级时间比较问题
  7. 关于某系统的全面质量属性战术
  8. Elasticsearch--进阶-Query DSL基本使用和match_all---全文检索引擎ElasticSearch工作笔记010
  9. 物联网核心安全系列——智能监控安全问题
  10. linux memcache端口占用,Linux: memcache的安装和启动、停止、重启, 检查memcache server是否开启...
  11. Julia: PyPlot的一些用法整理
  12. RPM 打包技术与典型 SPEC 文件分析
  13. 什么是CDN及CDN加速原理
  14. sql如何查询某天的所有数据
  15. C++ 修改图片格式(后缀)
  16. 建筑工程测量与测绘毕业论文范文
  17. Hi3516A开发--板卡烧写
  18. ds18b20c语言keil,DS18B20温度检测调节程序(C代码)
  19. QT With OpenGL(泛光)(Bloom)
  20. 学计算机了情话,二十句哄女朋友的情话 每句都很管用

热门文章

  1. [深度学习-TF2实践]应用Tensorflow2.x训练DenseNet模型在Cifar10数据上,测试集准确率90.07%
  2. make、make是什么??
  3. 最小公倍数的求解原理和证明
  4. Python将函数作为闭包
  5. make pycaffe 报错:“fatal error: numpy/arrayobject.h: No such file or directory” 解决方案
  6. Hibernate开发和对象状态
  7. 内存管理检查方法和工具
  8. 天正暖通天圆地方在哪_2020位于太白山景区海拔3511米天圆地方景点就变成了很多人望而却步的地方_天圆地方-评论-去哪儿攻略...
  9. matlab 贝叶斯工具箱,matlab的BNT贝叶斯工具箱错误求教
  10. kryoserializer java_使用Kryo序列化任意Java对象(获取IllegalAccess...