从MFC与ATL的男女关系说起

我从大三开始学习MFC,对于一个学软件的学生来说算是有点晚,到现在差不多有3
个年头了。我在大四进入公司实习开始学习COM,接触到ATL并用它来做开发。我在大二冬天开始恋爱,到现在为止第一段爱情走过3个半年头终于到了末路。
这些对于我来说都算初尝,尝之有味所以写一点胡言乱语。


男女关系


如果从哲学的观点来看,这大概要说是一种辩证关系了!


首先谈谈男人。男人与男孩的区别在于责任,对于一个男人来说,他的肩膀永远有负担,他要解决
生活中遇到的所有问题,可以为妻儿带来幸福生活,可以赡养父母,可以做一些成就来创一番事业。所以男人不要轻生,因为你垮下就意味着你的负担没有了支撑,
也就是你不负责任。男人的这种责任体现了一种刚性,打不倒压不垮,坎坎坷坷一路走来即使没有扬名立万但是肩膀上的负担始终没有落下。铮铮铁骨、铁血男儿、
阳刚之美都是对男人的赞美,一个家庭男人是顶梁柱,这就是责任。


再谈谈女人。女人与女孩的区别在于柔情,少了撒娇和任性,多了体贴和温柔。女人是生活的调剂品,少了她尽管可以填抱肚皮、补充营养但食之无味。女人天生就是善于交际的,这本身体现的就是一种柔性,就像太极一样,以柔克刚,借助刚性体现柔美。


用建筑来形容男女关系,男人就像钢筋水泥搭建起来的框架承受着外力,女人则是对框架填补装修
使其美观,不同的男人有着不同的建筑风格,不同的女人可以使建筑呈现不同的美。成功的男人背后都有一个女人,钢筋水泥加上精心装饰让人体会到设计之美,至
于谁重要次要,谁表谁里都不是关键,关键的是刚柔的结合。


MFC


MFC是一个男人,从Microsoft C/C++ version
7.0到Visual Stduio.net
2005一直承担着软件框架设计的角色,风风雨雨路不回头,屹立在软件设计大道,为开发者提供便利,著名的BCG库和XTREME库都是在MFC源码基础
上的改进。它大而繁杂,曲折通幽,粗旷豪放。它必须承担责任,提供软件设计的一套解决方案,而且背负着历史包袱,所以难免带有一些成熟男人的深邃而不被人
理解。如果你还一味的去批判它,那只能说你不懂男人的心,不理解一个男人难言之苦。 ATL


ATL是一个女人,小巧灵活讨人喜爱,它作为COM思想的实现而拿出来解决软件协作的问题。它可以不具体实现功能而只留出一些接口,接口两端相通并且随时拔插,多么完美一个女人!为一个C++对象配备一个ATL对象你可以想象有什么结果嘛?


软件设计中的MFC与ATL


以前我一直以为ATL就是做控件、构造插件接口体系的,而MFC就是用来做界面功能。它们属于不同体系,在功能级别上存在差异,所以只是在纵向上结合而没有尝试横向的结合。人类社会是自然的,软件社会也应该是自然的。自然代表一种随和,亲近,协调。


提到MFC,八九不离十就涉及到软件界面开发。目前来说软件复用需求越来越高,而软件功能的
不确定因素越来越大,一个特定的界面行为可能不确定。MFC是一个男人,用它可以做任何想做的界面,这就是它的刚性。但是我们到底是要去做什么还是告诉别
人我们可以做什么呢?如果我们一味的做,那我们充其量只是一个莽夫,是吕布有勇无谋。我告诉你我有一个MFC对象,还告诉你它可以做什么,这样不就够了。


MFC是男人天生缺乏沟通能力,所以无法告知外界它自身的行为,只有它自己知道。这时候就需
要一个管子插到对象内部去了解它,而ATL刚好提供了一个接口,将其一段插入MFC对象内部而露出另一端以便告知外界MFC对象内部的行为。这样的界面是
可解释的界面,它具有做事情的能力,但是它不去做,而成为可复用界面。

MFC与ATL在COM组件开发中的差异和优劣 从编写代码的角度,对比分析MFC(Microsoft Foundation Classes)与ATL(Active Template Library)在COM(component object model)组件开发中的差异和优劣。本文研究了ATL如何通过C++的多重继承和丰富的模板库,充分实现了COM组件多重接口的技术特点。 阅读详情

相关推荐

AI应用架构师实战:高等教育智能课程推荐系统开发

性能:选课季并发量达1000QPS,推荐响应时间≤500ms(否则学生不耐烦)。数据隐私:符合《教育数据安全管理规范》,学生姓名、学号等敏感信息需匿名化存储。可扩展性:支持新增课程类型(如MOOC、实践课)、新增数据源(如竞赛获奖记录)。教育AI要“以教为中心”:不能纯技术驱动,要和教育工作者深度合作(如教师参与定义课程的前置关系)。数据是核心:数据质量决定推荐效果,要重视数据治理和隐私保护。持续迭代:教育需求是动态的(如每年新增课程、学生目标变化),要定期收集用户反馈,更新模型和策略。张三。

AI大模型应用之禅 1349

C++ 的MFC 和ATL 及COM 是什么?

一、什么是MFC         微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分

imJaron的博客 2438

StarCCM+ 导入STL几何模型进行仿真

通过 Import Surface Mesh 的方法导入 STL 文件进行仿真

薛定谔的alpha狗 6129

MFC,ATL,WTL的历史沿袭

需求推动了技术的发展,从MFC到ATL,从ATL再到WTL的发展历程我想就是一个最好的见证。 早期的VC++开发者们发现了MFC(Microsoft Foundation Classes) 这样一个好东东。他们发现,MFC提供了一个强大的类库,很好的满足了面向对象编程的需要。随着泛型编程技术的发展和时间的推移,慢慢地,他们慢慢觉得MFC的类库过于庞大和宽泛,而且它提供的模板库只覆盖了很有限的

numbibi的专栏 1491

NVIDIA vGPU三种授权方式(个人玩家版)

NVIDIA vGPU三种方式搭建授权服务器(个人玩家版)

wstc2689784536的博客 8435

rfid标签技术原理

奇怪的是,RFID标签技术原理的深入剖析不仅揭示了其背后的奥秘,也让我们更加全面地认识到这一技术在数字化转型中的重要性和潜力。随着技术的不断进步和应用场景的不断拓展,RFID标签将在更多领域发挥重要作用,为物联网、智能制造等领域的发展注入新的活力。这意味着在一个读写器的覆盖范围内,可以同时读取多个RFID标签的数据,大大提高了数据收集的速度和效率。:RFID标签的“大脑”,负责存储和处理数据。芯片内部集成了存储器、控制逻辑和射频接口等电路,能够接收来自读写器的射频信号,执行相应的数据处理和通信任务。

x3088的博客 2159

制作控件,ATL和MFC,应该使用哪个

摘要目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在它们对于开发ActiveX的用途上会合了。我们将看看这两种框架是如何适用于创建ActiveX控件的——突出其优缺点,亲自经历创建一个控件的过程——以便你能够决定何时使用一

Little Things 3352

AI时代的软件质量保证新方法论

3.2.1 质量保证的方法论 质量保证(Quality Assurance, QA)是一种系统化的方法,用于确保产品或服务符合预定的质量标准。在AI时代,软件质量保证的方法论需要适应不断变化的AI技术和应用场景。 3.2.1.1 质量管理体系的构建 首先,构建一个完善

AI天才研究院 1351

MFC、WTL 、ATL、STL联系与区别

MFC、WTL 、ATL、STL联系与区别 STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭 代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类 组成的库来说提供了更好的代码重用机会。 ATL是一个产生C++/COM代码的框架,就如同C语言是一个产生汇编代码的框架ATL又不同于MFC,它完全面...

weixin_30295091的博客 435

手把手教你学simulink实例--基于Simulink的轨道交通车辆悬挂系统仿真

轨道交通车辆悬挂系统是保证列车运行平稳性、舒适性和安全性的重要组成部分。通过悬挂系统的合理设计,可以有效减小车辆在运行过程中受到的轨道不平顺和振动影响。基于MATLAB/Simulink平台进行悬挂系统仿真,可以对悬挂系统的动力学行为、控制策略以及性能优化等环节进行建模与分析,从而验证系统的设计性能并优化参数。本项目旨在构建一个完整的轨道交通车辆悬挂系统仿真模型,包括悬挂系统动力学建模、控制策略模块以及性能评估模块,并通过仿真验证系统的稳定性和舒适性。

MHD0815的博客 1032

26、机器学习模型的成员推断攻击与隐私保护

本文探讨了机器学习模型面临的成员推断攻击及其对隐私的潜在威胁。通过使用CIFAR-10数据集,详细介绍了如何利用影子模型和攻击模型推断特定数据点是否属于模型的训练集。实验表明,即使无法直接访问模型参数和原始数据,攻击者仍能以高于随机猜测的概率进行推断,从而构成隐私风险。此外,文章还分析了实验的关键技术点,并提出了多种隐私保护建议,包括数据脱敏、差分隐私、模型正则化等方法。

coffee的博客 123

crt是什么意思 windows编程_[转]CRT与Windows的关系

CRT原先是指Microsoft开发的C Runtime Library(C语言运行时库),用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,可以看到CRT的源码,不仅有C的,也有C++的。CRT原先的目的就是支持操作系统的运行。因为Windows...

weixin_39878247的博客 3984

《FreeRTOS 入门与实战》第20章:移植到 RISC-V 平台

处理器上下文保存/恢复机制中断处理与任务切换的协同时钟源配置(通常使用 Machine Timer)平台特定的汇编代码实现// 典型RISC-V移植文件结构FreeRTOS/├── Source/portable/[编译器]/RISC-V/│ ├── port.c // 关键移植接口│ ├── portASM.s // 汇编级处理│ └── portmacro.h // 架构宏定义。

2301_79143213的博客 449

入侵oracle数据库时常用的操作命令整理

首 页  系统问题系  图像网站系  办公应用系  编程开发系  数字艺术系  学院图酷  [ 视频中心  看精美图片  专题集锦  学院周刊 ] 操作系统 | 工具软件 | 病毒安全 | 多媒体 | Vista专区 编程系两大教室 编程开发 数据库 1 [编程开发] Asp教程 更

.... 1653

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC++、MFC、COM和ATL的区别

From: http://hi.baidu.com/huqingshuye/blog/item/c55bd12ca5fa1b5b4ec2263f.html 一、什么是MFC     微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Stand...

weixin_34124939的博客 403

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

关于MFC和ATL

如果你希望用C++来写ActiveX®控件,有两个流行的框架,一个是Microsoft® Foundation Classes (MFC),另一个是ATL。我将深入的解释这两种框架对开发ActiveX控件所提供的支持,帮助你更好的决定哪种模型最适合你的开发环境和需求。 ActiveX控件的完全形态 ActiveX控件基于构件对象模型COM,使得ActiveX控件成为可

哈库纳的专栏 3419

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

CRT、ATL、MFC 三者介绍和关系

转载地址:http://hi.baidu.com/catro/item/115099c46917edc4994aa0ed CRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library。在VC的CRT/SRC目录下,

memeai的专栏 8883

VC++ 的MFC 和ATL 及COM 是什么?

一、什么是MFC         微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分

发展是曲折的但也是前进的 2630
上一篇: 40个饭否API扩展应用
下一篇: dc.SelectObject
ardimo
博客等级 码龄18年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值