科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件应用MFC开发高级应用程序

应用MFC开发高级应用程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文就是针对如何在Visual C++环境中使用MFC类库来开发高级程序所需要解决的一些问题进行了的探讨

作者:苟建兵 来源:pcvc.net 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
1. Visual Basic来源于Basic语言,虽然经过微软的不断增强,但是仍然缺乏非常灵活的数据类型和编程策略,因而在开发一些项目必须的复杂数据结构遇到麻烦,如链表、图和二叉树等等。由于在中大型项目开发后期,开发工作不再以界面为主,而是在算法设计和底层软硬件工作,这就使VB开发项目的后期工作量大幅度增加,为了达到项目要求,经常需要再转向C/C++开发一些专用的动态连接库来解决问题。

  2. Visual Basic运行速度慢,前文讲过,采用P-Code代码虽然执行文件很小,但是在运行时需要解释执行,并且,它的运行必须有对应的VBRUN.DLL和所使用的VBX或者OCX支持。对于浮点操作密集或者循环嵌套很多的应用来说,VB没有采取特别的优化,因而执行速度远不如用C/C++和Fortran开发的应用速度快。VB 5.0虽然通过引入本地代码编译器大大弥补了这个缺陷,但是由于其只能运行于32位Windows环境因而在16位Windows上速度问题仍然得不到解决。虽然目前转向32位Windows的趋势非常强劲,但是不容忽视由于硬件的限制或者使用习惯等诸多原因,还有许多用户仍然在16位Windows上工作。在计算机十分普及的美国,96年使用16位Windows的用户仍然超过了使用32位Windows的用户,任何进行系统软件设计的人员都应该照顾到这些仍然使用16位Windows的用户。

  3. VB不能灵活地使用系统资源。熟悉Windows编程的人都知道,如果要直接访问硬件或者要编写对系统进行有效访问的应用程序,没有Windows API函数的帮助则非常困难,但是令VB程序员失望的是,API函数是用C语言和汇编语言实现的,是为C编程准备的,如果要在VB里面使用这些上千个API函数则比较麻烦,特别是,如果设计人员不懂C语言则尤其困难。由于API函数的复杂性,而其本身不是为了方便VB编程而提供的,因此在VB里面调用API函数需要一定的技巧,这些技巧足够用一本很厚的书来表述。VB程序员可以从书店里找到好多本类似的书籍。可以说,任何一个VB程序员发展到一定阶段都需要与众多的API函数打交道。另外,由于VB不支持端口操作,因此,如果要编写类似数据采集等需要与硬件交互的程序则需要求救于C/C++语言。

  4. Visual Basic项目分发和管理困难,其原因同上讲的,VB应用的运行不能脱离VB的运行库和所使用的控件,因此,如果开发人员要将VB应用分发给用户那么一定要带上VB的运行库和所使用的控件,并且要保证正确安装,这就导致即使一个非常简单的应用也需要附带大量其它相关支撑库程序,对于VB 4.0及更高版本,由于大量的使用了OLE控件(在VB中称为OCX),其安装更为复杂。

  Delphi软件是国际宝兰公司(Borland)的得意之作,也是备受软件界推崇,与VB一样,它完全是一个交互式的可视化开发平台,支持Client/Server应用程序的开发,其最新版本2.0可以开发Windows 3.x、Windows 95和Windows NT的应用程序。Delphi开发速度也非常快,与VB相比,由于具有本地代码编译器因此它产生的可执行文件执行速度大大加快。Delphi软件是一个非常有竞争力的软件,采用的是面向对象的Object pascal语言,支持硬件操作和API调用。但是由于采用的编程语言为Pascal,这种语言并不非常流行,许多程序设计人员完全不熟悉这种语言,因此极大地限制了该软件的使用,如果宝兰公司能够将Delphi软件提供的RAD开发机制引入到其Borland C++中,则可能会形成一个非常成功的产品(目前该版本已经推出,即C++ Builder,笔者注)。

  VB和Delphi引入的可视化开发方法还有一个共同的缺点就是各个版本之间的兼容问题。一般来讲,采用这些可视化开发工具开发的应用程序在移植到高版本时不会遇到太大困难,但是一旦往相反方向移植则困难重重,有时甚至不可能。C/C++语言则不具有这种局限性,各个版本之间的相互移植并不困难,高版本往低版本移植一般只需重建工程文件即可大功告成。

  综上所述,根据作者的观点,如果要开发一个大型复杂的应用程序首选的还是C/C++,特别是在16位Windows下。虽然这会使前期工作增加,但是在项目的中后期将逐渐会领略到其优越性和开发效率,其灵活高效的执行代码适合于对速度和应用程序之间的协同性要求很高的场合。纯粹基于Windows SDK来开发Windows程序是一项艰巨的工程,值得庆幸的是目前各种流行的C/C++开发工具都提供了类库开发框架来简化整个开发过程而又不失其固有的灵活高效性,不同的开发语言所提供的类库开发框架不同,如Borland C++提供的OWL(Object Windows Library)和 Visual C++提供的MFC(Microsoft Fundmental Class),这两种类库都封装了大量的Windows API和Windows的开发元素而使得开发任务简化,两种类库各有其优点,据作者掌握的资料,采用MFC编写的应用程序执行代码更小,执行速度也更快,这大概是因为该软件的开发者是开发Windows操作系统的Microsoft公司的缘故吧,现在MFC正逐渐成为Windows下的类库开发标准,正被越来越多的其它C/C++编译工具所支持,如Watcom C++。使用MC类库同时配合Visual C++提供的AppWizard、ClassWizard和AppStudio可以大幅度提高开发效率。笔者在工作中积累了一些MFC的使用经验现在提出来供大家参考,希望对广大同行有所帮助,尤其是那些仍然致力于16位Windows编程的程序员。本文使用的Visual C++ 1.51编译器,但是其方法同样适用于其它VC++版本,包括Visual C++ 4.x。
    • 评论
    • 分享微博
    • 分享邮件
    闂傚倸鍊搁崐鎼佸磹妞嬪孩顐介柨鐔哄Т閻骞栧ǎ顒€濡肩紒鎰殜閺岋繝宕堕埡浣锋睏闂佸搫顑呴柊锝夊蓟閺囷紕鐤€閻庯綆浜炴禒鐐節濞堝灝鐏犻柕鍫熸倐瀵寮撮敍鍕澑闁诲函缍嗘禍鏍磻閹捐鍐€妞ゆ挶鍔庣粙蹇涙⒑鐠恒劌娅愰柟鍑ゆ嫹

    婵犵數濮烽弫鍛婃叏閻戝鈧倹绂掔€n亞鍔﹀銈嗗坊閸嬫捇鏌涢悢閿嬪仴闁糕斁鍋撳銈嗗坊閸嬫挾绱撳鍜冭含妤犵偛鍟灒閻犲洩灏欑粣鐐烘⒑瑜版帒浜伴柛鎾寸洴閹儳煤椤忓應鎷洪梻鍌氱墛閸楁洟宕奸妷銉ф煣濠电姴锕ょ€氼參宕h箛鏃傜瘈濠电姴鍊绘晶娑㈡煕鐎c劌濡介柕鍥у瀵粙濡歌閳ь剚甯¢弻鐔兼寠婢跺﹥娈婚梺鍝勭灱閸犳牠骞冨⿰鍫濈厸闁稿本绋撹ぐ瀣煟鎼淬値娼愭繛鍙壝悾婵堢矙鐠恒劍娈鹃梺鍓插亝濞叉牠鎮″☉銏$厱閻忕偛澧介惌瀣箾閸喐鍊愭慨濠勭帛閹峰懐绮电€n亝鐣伴梻浣规偠閸斿宕¢崘鑼殾闁靛繈鍊曢崘鈧銈嗗姂閸庡崬鐨梻鍌欑劍鐎笛呯矙閹寸姭鍋撳鐓庡籍鐎规洑鍗冲畷鍗炍熼梹鎰泿闂備線娼ч悧鍡涘箠鎼淬垺鍙忔い鎺嗗亾闁宠鍨块崺銉╁幢濡炲墽鍑规繝鐢靛О閸ㄦ椽鏁嬮柧鑽ゅ仦娣囧﹪濡堕崨顔兼闂佺ǹ顑呴崐鍦崲濞戙垹骞㈡俊顖濐嚙绾板秹鏌f惔銏e妞わ妇鏁诲璇差吋閸偅顎囬梻浣告啞閹搁箖宕版惔顭戞晪闁挎繂顦介弫鍡椼€掑顒婂姛闁活厽顨嗙换娑㈠箻閺夋垹鍔伴梺绋款儐閹瑰洭寮婚敐鍛婵炲棙鍔曠壕鎶芥⒑閸濆嫭婀扮紒瀣灴閸╃偤骞嬮敃鈧婵囥亜閺囩偞鍣洪柍璇诧功缁辨捇宕掑▎鎴濆濡炪們鍔岄幊姗€骞嗗畝鍕<闁绘劙娼х粊锕傛煙閸忚偐鏆橀柛鏂跨焸閹偤宕归鐘辩盎闂佸湱鍎ら崹鐢割敂閳哄懏鍊垫慨姗嗗墻濡插綊鏌曢崶褍顏€殿喕绮欐俊姝岊槼闁革絻鍎崇槐鎾存媴缁涘娈┑鈽嗗亝缁诲牆顕f繝姘亜缁炬媽椴搁弲锝夋偡濠婂啰效闁诡喗锕㈤幊鐘活敆閸屾粣绱查梺鍝勵槸閻楀嫰宕濇惔锝囦笉闁绘劗鍎ら悡娑㈡倶閻愯泛袚闁哥姵锕㈤弻鈩冩媴閻熸澘顫掗悗瑙勬礈閸犳牠銆佸鈧幃鈺呮惞椤愩倝鎷婚梻鍌氬€峰ù鍥х暦閸偅鍙忛柟鎯板Г閳锋梻鈧箍鍎遍ˇ顖炲垂閸岀偞鐓㈡俊顖滃皑缁辨岸鏌ㄥ┑鍡╂Ц缂佲偓鐎n偁浜滈柡宥冨妿閳藉绻涢崼鐔虹煉婵﹨娅e☉鐢稿川椤斾勘鈧劕顪冮妶搴′簼婵炶尙鍠栧畷娲焵椤掍降浜滈柟鍝勬娴滈箖姊洪幐搴㈢┛濠碘€虫搐鍗遍柟鐗堟緲缁秹鏌涢锝囩畼妞ゆ挻妞藉铏圭磼濡搫顫岄悗娈垮櫘閸撴瑨鐏冮梺鍛婁緱閸犳岸宕㈤幖浣光拺闁告挻褰冩禍浠嬫煕鐎n亜顏柟顔斤耿閺佸啴宕掑☉姘箞闂佽鍑界紞鍡涘磻閸℃ɑ娅犳い鎺戝€荤壕濂告煕鐏炲墽鈽夌紒妞﹀洦鐓欓柣鐔告緲椤忣參鏌熼悡搴㈣础闁瑰弶鎸冲畷鐔兼濞戞瑦鐝¢梻鍌氬€搁崐椋庣矆娓氣偓楠炴牠顢曢妶鍌氫壕婵ê宕崢瀵糕偓瑙勬礀缂嶅﹪寮婚崱妤婂悑闁告侗鍨界槐閬嶆煟鎼达紕鐣柛搴ㄤ憾钘濆ù鍏兼綑绾捐法鈧箍鍎遍ˇ浼存偂閺囥垺鐓涢柛銉e劚婵$厧顭胯閸ㄤ即婀侀梺缁樓圭粔顕€顢旈崼鐔虹暢闂傚倷鐒︾€笛呮崲閸屾娑樜旈崨顓犲幒闂佸搫娲㈤崹娲偂閸愵亝鍠愭繝濠傜墕缁€鍫熸叏濡寧纭鹃柦鍐枛閺屾洘绻涜鐎氱兘宕戦妸鈺傗拺缂備焦锚婵洦銇勯弴銊ュ籍闁糕斂鍨藉鎾閳ユ枼鍋撻悽鍛婄叆婵犻潧妫楅埀顒傛嚀閳诲秹宕堕妸锝勭盎闂婎偄娲︾粙鎰板箟妤e啯鐓涢悘鐐靛亾缁€瀣偓瑙勬礋娴滃爼銆佸鈧幃銏$附婢跺澶�

    重磅专题
    往期文章
    最新文章