COM和ATL学习方法

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究和广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文和大家探讨一下学习它们的路径,以让后来人少走弯路。


我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点和理论才能真正懂得其精髓。那样才能在发生错误的时候,依靠自己的知识解决问题。我个人认为如果要学好COM/ATL没有一年的时间是肯定不行的,也许是我比较愚笨。个人认为需要COM/ATL的应该循序渐进,可以参考的书目有:
1、《C++ Primer》——学习C++语言。主要理解其中的继承、重载、多态、多重继承、虚函数、纯虚函数、C++模板,这些都是以后学习COM的基础。因为C+ +对COM的实现是完全支持的,只有在C++上才能实现COM所有功能,体现其无穷魅力。很多书在说明COM原理的时候也是使用C++给予说明的。《COM技术内幕》中为了说明COM的使用了C++的多重继承和纯虚函数,MFC使用了嵌套类实现COM,ATL使用多重继承实现COM。不要认为这些基础不重要,在很多的满口继承和重载的C++高手中,很多人都不知道什么叫纯虚函数?虚函数表是什么东西?它在内存中是怎么存储的?派生类中又如何?
2、《Windows程序设计》——了解Windows编程的本质,相关的API使用,Windows程序结构、消息传递机制。如果你想在Windows上开发你的COM程序了解一点本质的东西对你后来的开发一定是有帮助的。
3、《深入浅出MFC》——学习MFC的相关知识,了解MFC的封装知识,MFC的框架。个人认为通过本书学习作者对程序的剖析方法才至为重要,那样会帮你在ATL的各种Wizard产生的代码中不至于迷失方向。
4、《COM技术内幕》——一本很好的COM原理说明的书,其在COM学习中的重要性我就不再强调了。我个人就看过4遍,每一遍都有所收获。好书一定要反复读,也许是我的领悟能力比较差吧,也许是作者是老外,叙述事情的方式不容易让国人接受,^_^。
5、《COM原理和应用》——作者使用中国人接受和认识事物的方法和语言,如道家常般的让你再次认识COM的原理,书后半部分更多介绍了COM的一些高级应用,这些实际的应用更让读者从前面众多的COM的理论知识的说教中看到了一丝实际使用的曙光,让人跃跃欲试。
6、《COM本质论》——让你透过现象看本质,如果学习COM不读此书真是让我a不敢相信你是做COM编程的。个人认为此书是学习COM的最好的一本书,太精彩了,尤其是前几章一定会让你眼前一亮。书中对套间的描述更让我迷茫很久的问题,得到了最好的解决。但是学习本书一定要有良好的C++基础和对外国人叙述事物的语言的良好领悟能力。
7、《深入解析ATL》——一本介绍ATL的本质的书。结合本书中的讲解和你从《深入浅出MFC》中学到的分析宏、程序剖析的方法一定会让你对COM和ATL有更深入的理解。
8、《IDL精髓》——一本让你能自如的操作MFC和ATL为你生成的一堆如天书般的IDL文件,添加、修改使用它们的工具书。
9、《COM编程精彩实例》——书中前几章的叙述还是不要看的为好,译者的专业基础实在太差。书中提供的例子倒是颇为精彩。更多的贴近实际的使用!
好了,基础的书我觉得就这些就够了,至于DCOM和COM+的学习那是后话了,需要更多的知识了。呵呵,还是那句话“尽信书不如无书”,COM的理论在发展,也许书中有些理论也会过时,所以如果你有疑问,那么就一定要动手实际测试一下,那样学到的东西才更为扎实。最后要说的就是学习COM/ATL一定要多动手,不要像我一样成为理论上的巨人,实际编程中的矮子,^_^。
VC++ ATL 学习总结 ATL (一种微软程序库) ATL,Active Template Library活动模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。通过活动模板 库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用。这种COM组件可以包含属性页、对话框等控件。 中文名 ATL 类    型 一种微软程序库 支    持 C++语言 阅读详情

相关推荐

Windows Shell Extension开发实战教程:基于COM ATL

在现代软件开发领域中,组件对象模型(COM)活动模板库(ATLShell扩展是构建强大、可扩展且互操作应用程序的关键技术。本章节旨在为读者提供这些技术概念的基础性介绍,并奠定后续章节深入分析的基础。组件对象模型(Component Object Model,简称COM)是微软公司开发的一种软件组件架构。它定义了对象与对象之间交互的机制,让不同语言编写的软件组件能够以一种统一的方式进行通信。这一技术是实现软件复用模块化的基础。

weixin_31419153的博客 1105

规则合成活动模板库ATL失败(处理方法

规则合成活动模板库ATL失败,处理方法:卸载SQL2008 R2后清除注册表,再重启电脑ok

ATL开发指南(第二版):高效COM组件开发的完整教程附带源码

随着软件开发的不断进步,组件化编程变得越来越重要。在这个背景下,ATL(Active Template Library)技术应运而生,旨在提供一种简便、高效的方式来创建使用COMComponent Object Model)对象。ATL的出现,极大地简化了COM组件的开发,使得开发者能够快速构建可重用的组件。本章将概述ATL的历史重要性,探究其在现代软件开发中的角色。我们还将深入了解ATL的核心概念,特别是COM的基本原理,以及如何利用ATL来简化COM对象的实现过程。

weixin_42613360的博客 887

ATL编程书籍-学习ATL的初学者必备。

学习ATL的初学者必备。 我在一开始学习ATL编程时就是看这本书的。 这是我的一个朋友给我的,希望对你有用。

我的COMATL学习

首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文大家探讨一下学习它们的路径,以让后来人少走弯路。我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点理论才能真正懂得其精髓。那样才能在发生错误的时候,依靠自己的知识解决问题。我个人

梦中江湖——vcleaner 4148

最近在学习COM

上个十年微软最伟大的“发明”恐怕要算COMComponent Object Model)了。大二以来一直用.NET做Windows开发,虽然对.NET程序集(Assembly)的操作比对COM操作要简单得多,而且.NET还可以与原有的COM进行互操作,按理说,可以不学习COM技术了。但想想自己作为一个计算机专业本科生,应该了解些更多的技术细节,而COM又在代码重用方面发挥着这么巨大的作用,所以C

快乐编程 -- Cocoa17 2138

ATLCOM线程的学习

COM组件、ATLCOM组件-线程模型(套间)

xiliang_pan的专栏 370

sql server安装报错 合成活动模板库(ATL) 失败

进入SQL Server 2008R2安装包目录找到文件:sqlsupport_msi,安装此文件之后,再安装SQL Server,便可解决该问题。错误 “合成活动模板库(ATL) 规则失败“

Zola的博客 1万+

Sql Server2008R2的完全卸载及重新安装

前言: 最近打开电脑上的 Sql Server2008R2 出现了一些问题以至于无法正常使用,在查询资料无果后,便进行重新安装。由于没有将其完全卸载就进行重新安装而遇到了一系列的问题。 在此,分享如何完全卸载 Sql Server2008R2 以便重新安装以及我遇到的一些问题及解决办法。 1.控制面板–>卸载程序->卸载Sql Server2008R2及其相关组件。 卸载圈1的Microsoft SQL Server 2008 R2时会弹出以下界面,点击“删除”(这里不再详细描述,比较简.

weixin_46025729的博客 2万+

LLVM不是编译器,而是可编程的编译流水线操作系统

LLVM本质上是一种面向现代软件基础设施的编译器中间表示(IR)架构,其核心在于统一的静态单赋值(SSA)形式中间表示与模块化Pass调度机制。它通过将前端语言解析、中端优化后端代码生成解耦为可插拔组件,实现了跨语言、跨硬件的目标适配能力。这种设计赋予了开发者在IR层面干预编译流程的技术自由度,支撑起嵌入式极致优化、AI框架多后端统一编译、内存安全运行时注入等关键工程实践。尤其在RISC-V扩展支持、MLIR多级方言构建及Compiler-RT安全加固等场景中,LLVM已超越传统编译器范畴,成为软硬协同开

weixin_34341229的博客 367

(转载)COMATL学习方法

首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文大家探讨一下学习它们的路径,以让后来人少走弯路。 我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点理论才能真正懂得其精髓。那样才能在发生错误的时候,依靠自己的知识

享受开发技术,享受计算机科学 923

SQLServer2012

SQLServer2012的镜像安装,相关的问题

谨以此文记录我的ATL COM组件的学习之路--多线程情况下,连接点的使用方法

首先非常感谢下面几篇文章: http://groups.yahoo.com/neo/groups/wtl/conversations/topics/16493 http://lang.9sssd.com/awtl/art/480 http://www.codewiz51.com/wiki/ATL-Threading-passing-a-SAFEARRAY-when-raising-a

liwf616的专栏 1284

潘爱民::介绍一本关于ATL的书《ATL Internals》 ----转

面对计算机图书市场的繁荣景象,我经常感叹今天学习计算机开发技术的同道们是多么幸运。十年前,我们学习计算机语言非常不容易,要掌握各种开发工具只有靠自己的摸索极少量的参考手册。我记得,94年我学习Visual C++MFC的时候,基本上只有靠软件自带的联机帮助;现在情形大不同了,书店中的计算机图书琳琅满目,关于Visual C++MFC的书籍尤其多。有几位编辑朋友劝我写一点这方面的书,我觉得不大有必要了,因为Visual C++的好书已经不少了,适合各种读者层次的书籍几乎都可以买到,而且有一些书还相当不错

massice的专栏 1246

我的COM学习笔记

下面这个东西是我在01年学习COM时的一个笔记,原来发表在腾讯社区里,并被收入C/C++板块的精华区中。近日重拾COM,将它稍做修改,挪到这里,以便查找。=====================================2001.5.30 1.何谓组件? 组件(component)就是一个软件模块,专门用来完成特定的预定工作,实现二进制级的代码复用。 2.何谓COMCOM

sam1111的专栏 1865

COM学习-1

今天又拿起了讲COM的书,记得开始学习COM是好多年以前的事情了,那时看过《COM技术内幕》MSDN上的一些文章,脑子里就一个感觉:乱!又没这方面的项目可做,看了一段就放下了。最近感觉还是比较闲,又拿起来,准备重温一下。基本概念以前也基本知道,感觉除了COM的线程模型不太好理解,在看过了《》之后感觉清醒了一些,总算能明白一点了。 但要用COM做东西,感觉要差一些。今天看看了《COM原理与应用

闹中取静的专栏 857

我的COM学习笔记 (转)

我的COM学习笔记 (转)[@more@]下面这个东西是我在01年学习COM时的一个笔记,原来发表在腾讯社区里,并被收入C/C++板块的精华区中。近日重拾COM,将它稍做修改,挪到这里,以便查找。 ==============...

csd3176的博客 188

DuMate智能引擎升级:任务完成率99%背后的可靠性解读

任务自动化与智能工作流是当前企业降本增效的关键技术,而智能任务引擎作为其核心载体,负责将复杂目标拆解为可执行步骤并稳定完成。衡量引擎能力时,任务完成率是最直观的指标,但99%的背后需明确统计口径、任务复杂度差异及稳定性保障。从基础概念出发,理解引擎如何通过自动化调度与Agent编排提升执行链路可靠性,有助于在批量数据处理、多步骤流程编排等场景中合理应用。DuMate此次升级将任务完成率提升至99%以上,为用户提供了高可靠的自动化基础设施,但在实际落地时仍需结合输入规范化、失败重试与监控体系,方能最大化发挥智

cuiji1279的博客 463
上一篇: 10 款可以找回删除文件的好软件(文件恢复)
下一篇: VC6如何使用VS2005中的CImage类功能
whatday
博客等级 码龄20年 3837粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值