`

从MFC与ATL的男女关系说起

    博客分类:
  • MFC
阅读更多

我从大三开始学习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下通用的ADO模块

    1. **MFC与ADO结合**: MFC提供了一种面向对象的方式来包装ADO接口,使得开发者可以更方便地使用ADO。MFC的CDaoDatabase和CDaoRecordset类是早期的数据库访问组件,但随着ADO的发展,MFC引入了CADODatabase和...

    MFCATL示例 在MFC服务器中使用ATLCOM对象

    - `mfcatl.cpp` 和 `mfcatl.h`: 可能是MFCATL主程序的实现和头文件,提供MFC与ATL的集成。 - `objone.cpp`, `objone.h`, `objtwo.cpp`, `objtwo.h`: 这些文件可能分别包含了两个不同的ATL COM对象的实现和接口定义...

    visual c++在MFC和ATL工程中使用GIF动画.zip

    在Microsoft的Visual C++开发环境中,MFC(Microsoft Foundation Classes)和ATL(Active Template Library)是两个重要的库,用于构建Windows应用程序。本教程将详细阐述如何在MFC和ATL工程中集成并使用GIF动画。 ...

    ATL 封装MFC对话框

    在本案例中,“ATL封装MFC对话框”是指将MFC中的对话框类集成到ATL工程中,这样可以利用ATL的轻量化特性,同时利用MFC对话框的强大功能。这种做法在某些情况下特别有用,比如当你需要在非MFC项目中使用MFC对话框,...

    MFC C String For ATL

    在提供的文件列表中,我们可以看到几个与ATL和`CString`相关的源文件: 1. `ATLStringDemo_p.c` 和 `ATLStringDemo_i.c`:这些通常包含ATL COM组件的接口定义和实现,可能使用`CString`进行字符串处理。 2. `...

    atlmfc for visual studio 2008

    ATLMFC将ATL(Active Template Library)与MFC集成在一起,使得开发者可以利用ATL的高效性和MFC的易用性来构建COM(Component Object Model)组件和Windows桌面应用。 1. ATL基础: ATL是一个C++模板库,设计用于...

    atlmfc.rar

    《全面解析C++ MFC开发:借助atlmfc加速你的编程之路》 在软件开发领域,C++语言以其高效、灵活的特点深受程序员喜爱。而MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,它基于Windows API,极大地...

    COM Programming by Example - Using MFC ActiveX ATL ADO and COM+

    #### 三、MFC与ActiveX - **MFC (Microsoft Foundation Classes)**:MFC是Microsoft提供的一组C++类库,用于简化Windows应用程序的开发过程。它封装了Win32 API的复杂性,使得开发者可以更加专注于应用程序逻辑而...

    COM Programming by Example Using MFC ActiveX ATL ADO and COM+

    与MFC相比,ATL更加轻量级,适合开发性能要求较高的小型组件。 - **ADO (ActiveX Data Objects)**:ADO是一种数据访问技术,提供了一种简单的方法来连接数据库并检索、更新数据。ADO基于OLE DB,但更加易于使用,...

    ATL组件开发及在MFC中的应用

    将ATL组件与MFC结合,可以在MFC对话框中嵌入和使用ATL组件,增强对话框的功能。以下是如何在MFC对话框中集成ATL组件的步骤: 1. 添加ATL支持:在MFC项目中启用ATL支持,这可以通过在Visual Studio的项目属性中设置来...

    MFC工程中加ATL.rar_MFC

    4. "mfc_in_atl":这个名字暗示了一个可能的子目录,包含与MFC在ATL环境下的特定应用或问题相关的文件。 在MFC工程中添加ATL的过程通常涉及以下几个关键步骤: 1. 创建MFC工程:首先,我们需要在Visual Studio中...

    取MAC地址的网页控件OCX(MFC/ATL)源码

    【标题】"取MAC地址的网页控件OCX(MFC/ATL)源码"涉及到的核心技术是创建一个能够获取计算机硬件物理地址(MAC地址)的ActiveX控件,该控件可以在网页环境中使用。这通常是通过MFC(Microsoft Foundation Classes)...

    在 MFC 和 ATL 工程中使用动画GIF.zip

    在Windows应用程序开发中,Microsoft Foundation Class (MFC) 和 Active Template Library (ATL) 是两种常用的库,它们分别提供了对Windows API的高级封装和轻量级COM对象的创建。本教程将详细介绍如何在MFC和ATL...

    VC++6.0绿色版(支持MFC以及ATL)

    本绿色版不修改注册表,不需要安装,支持MFC,ATL等常用类库,调试,以及绝大多数原有的功能. 适合初学者,或在公共场所使用 具体使用方法如下: 把压缩包解压到任意文件夹(自己决定) 修改下面配置文件 <你解压的文件夹>\...

    VC++ 2003 运行时/MFC/ATL库文件和符号文件

    **VC++ 2003 运行时/MFC/ATL库文件和符号文件详解** Visual C++ 2003(也称为VC++ .NET 2003)是微软开发的一款集成开发环境(IDE),用于创建Windows平台上的应用程序。在这款IDE中,MFC(Microsoft Foundation ...

Global site tag (gtag.js) - Google Analytics