![](https://img-blog.csdnimg.cn/20190905171846830.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ATL/COM
介绍ATL/COM的开发经验总结。
clever101
2006年本科毕业于CUG(武汉)的GIS专业,毕业后参加工作,现在在北京从事软件开发和团队管理工作。现任CSDN博客专家(CSDN博客访问量600万+)。熟练掌握C++、Java和Python等多门开发语言。在遥感图像处理、地理信息系统、导航地图和三维可视化方面具有丰富的开发经验。曾担任某上市公司首席架构师,主持过新一代遥感处理软件平台的研发。曾获有色金属工业科技进步奖二等奖。
展开
-
《ATL开发指南》的一个值得商榷的地方
朱金灿 最近看《ATL开发指南》(英文名《ATL Develper’s Guide》 [美]Tom Armstrong Ron Patton著 董梁 丁杰 李长业 等译 董梁 审校),在该书的1.6 节中碰到一个值得商原创 2007-12-04 22:40:00 · 2918 阅读 · 4 评论 -
远程桌面连接控件无法初始化的问题及其解决办法
作者:朱金灿来源:http://blog.csdn.net/clever101 VisualStudio提供了一个基于RDP(Remote Desktop Protocol)协议的用于远程登陆的activeX控件。直接把控件拖拽到对话框上总是出现这样的错误: 重复了几次都出现这个错误,后面只有采取动态创建控件的做法才解决了这个错误,原创 2017-11-02 18:40:58 · 6169 阅读 · 0 评论 -
使用regasm注册.net com组件出现不是有效的.net程序集的解决办法
作者:朱金灿来源:http://blog.csdn.net/clever101 在电脑上装有VS 2008和VS 2010.使用VS 2010编写了一个C# com组件:MyCom(基于.net framework4.0),然后使用VS 2008的命令提示工具运行命令:regasm MyCom,结果提示错误:RegAsm:error RA0000,“MyCOM”不是有效的.net程序原创 2015-05-01 18:53:27 · 27419 阅读 · 3 评论 -
关于com工程依赖的一些总结
作者:朱金灿来源:http://blog.csdn.net/clever101 一是com组件工程的依赖设置。比如A这个组件工程要使用B组件工程的类,要如何设置呢?具体就是先把在A工程里加上B工程的idl文件的路径,具体如下图:然后在A工程的idl文件中把B工程的idl文件导入一下,具体如下:import "B.idl"; 因为A组件和B组件形成了一种依赖关系,所原创 2016-05-09 18:43:14 · 2548 阅读 · 0 评论 -
使用回调接口实现ActiveX控件和它的容器程序的通讯
所谓基于COM的回调虚接口实现ActiveX控件和客户端程序的通讯,大致是这样的,就是在ActiveX工程的内部的idl文件定义一个虚接口,在客户端程序定义一个虚接口的派生类来实现回调函数,在客户端程序传递派生类对象指针给ActiveX控件,在控件内部调用这个虚接口的函数来激发客户端程序的派生类的对应的回调函数。原创 2010-06-05 15:29:00 · 12274 阅读 · 9 评论 -
STL数组和com数组相互转换的做法
作者:朱金灿来源:http://blog.csdn.net/clever101 STL的泛型数组是vetor,com的泛型数组类型是VARIANT。二者怎样能相互转化呢?就是说怎么把一个vector对象封装进VARIANT对象,又怎么将VARIANT对象封装进vector对象。经过一番研究,找到了办法。需要注意的是,数值数组和字符串数组是需要单独处理的。首先谈谈数组类型的数组原创 2015-06-14 12:42:05 · 2175 阅读 · 0 评论 -
关于编译com工程的一些体会
作者:朱金灿来源:http://blog.csdn.net/clever101 今天发现com的编译的一个重要一步是微软提供的midl工具将其中的idl文件生成一个头文件、c文件(即IID文件)和代理文件。头文件作为接口文件很好理解,为啥生成一个c文件呢?理由应该是com的一个设计初衷是跨语言调用,而c库一般能跨语言调用的。代理文件的作用暂时还不清楚。 在工原创 2014-11-13 18:59:10 · 1862 阅读 · 0 评论 -
编写ATL控件的简单做法
作者:朱金灿来源:http://blog.csdn.net/clever101 ATL并不像MFC库那样提供了很多的控件窗口类,因此要使用ATL的话需要自己去封装。封装的做法很简单。比如现在我需要一个列表控件,可以这样进行封装。首先新建一个C++类:CMiniComboBox,它派生自ATL::CWindow,代码如下:// MiniComboBox.h#pragma once原创 2014-02-18 22:07:03 · 2930 阅读 · 0 评论 -
JS调用ATL COM中的C++接口的做法
JS调用ATL COM中的C++接口的做法。原创 2014-02-20 23:56:55 · 5915 阅读 · 0 评论 -
C#调用ATL COM
作者:朱金灿来源:http://blog.csdn.net/clever101 简单介绍C#程序如何调用ATL编写的COM组件。 首先新建一个ATL工程,具体如下:1. 填写工程名称和路径,如下图: 2. 选择工程的服务器类型为动态链接库,如下图:3. 添加一个ATL简单对象,如下图:4. 填写类名称,如下图:5. 选择类的线程模型及其它属性,如下图:6.原创 2013-06-10 13:10:32 · 6368 阅读 · 2 评论 -
自己动手写一个简单的Windows shell扩展程序
作者:朱金灿来源:http://blog.csdn.net/clever101 关于什么叫Windowsshell扩展程序,这里不作介绍,不懂的同学请google之。 一.Shell程序编写 这里采用的开发环境为Windows原创 2012-05-19 20:03:12 · 25951 阅读 · 17 评论 -
重新认识COM的优点
实际上我认为COM对于软件开发而言的最大优点是语言无关性。所谓的语言无关性,就是不管实现COM组件的语言是哪种,它都可以很容易被支持COM规范的其它语言开发的客户端程序所调用。COM的这种特性毫无疑问将大大提高软件开发的效率,因为这可以实现不同语言背景的开发人员的混合开发,具体就是在一个项目中可以使用多种开发语言;以COM形式出现的SDK可以供多种语言进行二次开发。原创 2010-06-13 21:58:00 · 7491 阅读 · 27 评论 -
枚举com组件类的做法
枚举com组件类的做法转载 2018-08-31 14:43:18 · 776 阅读 · 0 评论