APP下载

软件开发中的MFC

2014-04-08董振华

黑龙江科学 2014年11期
关键词:句柄类库面向对象

董振华

(吉林司法警官职业学院,长春130062)

1 MFC基本概况

1.1 MFC内涵及其包含的主要内容

MFC,是MicrosoftFoundationClass的英文缩写或简称,它的中文含义是微软基础类。它是微软公司自主研发的一套能够在开发在Windows操作系统上运行的平台软件的类库。MFC封装了大部分的Windows应用程序开发接口函数,换言之,它是微软公司开发的一个软件平台研发的集成开发环境,可以使用MFC进行编译、调试,而不需要使用其他多种工具互相配合操作,因此它具有极大的便利性和灵活性。它是一套能够将数据管理和显示相分离开来的应用框架,在C++编程语言里如果新建一个MFC工程的话,开发环境或者说是软件会自动生成许多不同格式的文件,有点类似于JAVA语言的三大框架(Struts、Hibernate和Spring)。它也是一种面向对象类型的经过封装了的C++语言类库。一般来说,MFC通常包括两部分的内容,第一部分就是常见的或者常用的C++类库,它被认为是MFC类库的主体部分,第二部分就是在MFC中已经定义好的各种全局变量、全局函数以及宏等,它被视作MFC编程类库的辅助部分。虽然这两部分有所分工,但实际上它们作为MFC重要的组成部分,是在Windows操作平台上进行软件开发所必不可少的组块。

1.2 MFC的特点

MFC利用面向对象的原理把复杂的API有逻辑地组织起来,使得MFC具有面向对象编程语言的所有基本性质,即继承化、封装化、抽象化、模块化、多态性。MFCObject和Windows Object是不一样的,但两者之间的联系紧密。MFCObject相对系统的其他进程来说是不可用或者是不可见的,但是Windows Object不同于它,一旦被创建之后,它的句柄是整个Windows系统全局的,换句话说就是整个系统或者程序都能对其进行调用,其他进程可以使用一些句柄。最典型的就是,一个进程窗口句柄可以被另一进程所获取,并同时能够给该窗口发送一些消息,使得调用MFCObject的成员函数能够创建相应的WindowsObject,因而也就使得MFC的句柄变量存储的就是一个有效句柄。除了上述这些,MFC类库还有着其独特有的文档、试图体系基本结构以及包含根类、应用程度类和命令发送类三者的分层结构。因此,它除了具有面向对象编程语言的基本性质之外,还有着与WindowsObject的千丝万缕的联系,还具有其特有的文档、试图体系基本结构以及分层结构。

2 软件开发中的MFC的实际应用

2.1 MFC与ObjectARX互相结合在实际中的应用

作为重要的系统开发环境和工具,ObjectARX能够与MFC充分结合起来。编程人员可以充分利用ObjectARX对编程环境的支持,选用常见的而向对象的应用程序。具体地说,ARX应用程序经过处理之后将不会再是一个独立的应用进程,它将成为一个动态化的链接库。ARX程序能够与AutoCAD在同一地址空间上同步运行,也就是ARX能够直接把AutoCAD的内核代码进行利用,进而可以直接访问无须其他操作AutoCAD的图形系统、基本数据库及几何基本常用的造型核心数据。在运行期间,ARX能够实时扩展AutoCAD所具有的功能及其基本类,建立其与AutoCAD与固有命令操作方式不太相同的命令新的命令形式。由于采用了与第一代和第二代开发工具完全不同的运行机制,ARX应用程序在运行速度和程序功能上都较前者有着巨大的提升。显得更重要的是,开发ARX应用程序还可以充分利用Windows平台开发运行的资源、微软的基本类库MFC( MicrosoftFoundationClass)。它是先进的C++可视化集成后的编程环境和工具,能够快捷、方便、高效地设计具有Windows典型平台风格的计算机辅助设计类应用程序。此外,应用MFC可以简化对应用程序的编写方式,同时还能减少编程开发者的代码编写工作量。事实上,由于windows操作系统平台有着Microsoft公司强大技术实力的支持,使得MFC类库几乎能够提供所有对通用计算机IT技术的平台支持,例如对常见的数据库、网络、Web功能和多媒体的基本支持。因此,在某种程度上可以说CAD软件开发者的唯一最好的选择就是用MFC开发Windows应用程序进行二次开发。

2.2 MFC在滑动轴承设计软件开发中的应用

滑动轴承软件被认为是一个典型的多视图单文档类应用程序。该应用程序的主要计算过程是利用了MFC面向对象的方法,通过将以往编制的各种常用的计算程序进行集成来实现的,它的设计风格或多或少也参照了当前比较流行的类似QQ抽屉菜单效果。这个应用程序充分利用了MFC面向对象的设计思想,按照所要求实现的功能来设计基本类的结构,当然,计算各种轴承相关的静、动特性系数时,所采用的相应的独立计算程序是用有限元法编写的。因此,为了更好的在MFC界面设计中将这些独立的程序进行应用,以便在实际中能够将其用于各种轴承形式的计算,这就无疑需要按照不同轴承的类别将这些应用程序简单的封装为各种不同的类,进一步通过定义不同类别对象来完成不同轴承类别的基本计算过程,这就是面向对象这一常用的设计思想的精髓。另外,由于滑动轴承系统的开发所采用得面向对象技术是具有开放式特性的,因此在一定程度上该应用程序比较容易进行扩充,这就为后续的二次开发奠定了良好的基础,为以后节省成本开支埋下了伏笔。

3 MFC在软件开发中存在的不足及对策

目前MFC技术存在着一些缺陷,比如说灵活性不够。解决这一类缺陷的基本做法是不断更新MFC类库,将越来越多的应用广泛装到MFC类库中,并及时提供相应的最新下载版本。MFC类库还存在所支持平台单一的不足,不能够像JAVA那样实现跨平台、多平台的应用。对于这类基本缺陷,最好的解决办法是实现MFC的跨平台应用。只有解决了上述常见弊端,MFC在软件开发领域中的应用将会越来越广泛,相应的平台开发者才能取得更多的收益。

4 结语

MFC是重要的集成化编程开发环境或者工具,它在实际开发中应用比较宽泛。但是它自身也存在着些许不足,如果MFC平台开发者能够及时解决这些缺陷或者不足的话,相信未来MFC在软件开发领域的路途将会是一片坦荡。

[1]车忠志,孙雪雁.MFC应用程序基本框架分析[J].农业网络信息,2012,(09): 145-147.

[2]刘连喜,徐惠民.MFC框架中的设计模式分析[J].计算机应用与软件,2013,22(09):50-52.

猜你喜欢

句柄类库面向对象
用Java编写客户机/服务器端应用程序
Python在数据可视化中的应用
数据结构课程教学改革方案和应用效果
数据结构可视化类库的设计与实现
高校图书馆持久标识符应用研究
编译程序语法分析句柄问题分析与探讨
面向对象Web开发编程语言的的评估方法
基于面向对象的车辆管理软件的研制与开发
面向对象的SoS体系结构建模方法及应用
面向对象信息提取中影像分割参数的选择