MFC就是 微软给你包装了的库,提供了很多扩展功能,以及高级功能,这样方便你使用,而不是自己从头调用API来实现
而API由于是MFC下一层,自然实现更灵活,可以根据你的需要来使用,不会被MFC类库所限制。‍win32和mfc编程的最大不同是
win32是编程者自己把消息和响应函数联系在一起。
mfc是编程者采用微软为我们做好了MESSAGE-MAP机制,来处理消息。
--------------
mfc是便利的,为什么有人不用呢?
不用mfc的人群往往是从DOS时代开始从事窗口编程的人,他们早在mfc出世之前就编得一手好程序。
长期的编程过程中,每人,每个TEAM都拥有了自己的消息处理机制程序库或类库。
当然有很多人认为他的类库比mfc使用方便。他开始为窗口编程的时候,mfc的TEAM的很多人还在学校里读书呢。
--------------
如果不是从那个年代过来的人,还是用mfc吧!
mfc是封装的类,最后还是会调用win32api
win32api开发效率是底一些,但比较自由.
有时候mfc是封装的类不能满足我们的要求,这时就需要我们自己用api来开发啦 ‍MFC是专注于用户界面的,而Windows SDK专注于UI, console,Windows服务,嵌入式,驱动多种类型的程序
MFC是一套类库,适应范围窄,可以搞ERP软件,但效率不如其他语言高,而且类库并没有对DDK,openGL,D3D等专项领导的函数库进行封装。而Windows SDK提供了专题开发的平台。
MFC中对所有的句柄,对象,消息都进行了严格的检测,如果你不知道它的内部机制,随便调用函数很容易出错,而SDK提供的是一种宽松的开发环境,你可以用面向对象的思想定义自己的类,对界面控件进行封装。
在一些专题开发项目,你可以不懂MFC,但是在一些常规的软件开发,你必须熟悉MFC,同时还要懂SDK.‍ win32是windows下的最基本的编程方式,使用它得到的代码最干净最有效率,也是最底层,它是其它所有方式实现的基础。一般指只使用API和SDK。
MFC是对win32的封装,使用win32编程方法,写了一个又一个类,让我们不用再重复大量劳动。但毕竟是封装,所以不可能完全实现win32所有功能。用着虽然方便,但距离细节毕竟远了,在个性个、特殊化方面还有差距。两者相比,win32更本质,MFC更抽像。从软件工程来看,MFC更符合要求,更人性化。我们在正常使用中,优先使用MFC
1.MFC的功能正常情况下可以满足绝大部分的需要,特殊需要,也可以直接用API和SDK实现。但反过来,win32下想用MFC的东西,却是非常困难的。MFC下开发,是包融了win32.
2.MFC和vc融合,拥有大量人性化的东西,会极大增加开发效率。如界面、通用对话框等。而且它的代码是微软写的,比你自己用win32实现更值得让公司信赖。而且代码量会降低很多,更容易调试和维护。
3.很多功能你自己实现起来非常麻烦,甚至你的技术没达到那标准,而使用MFC很简单,这会迫使你使用它。
有些场合下不要使用MFC:
1.三维游戏等,这些东东MFC并没有包含,这时需要使用其它库。使用MFC反而不好,会造成臃肿和拖累。
2.特殊程序,如病毒等后台工具。它们根本不需要什么界面,需要的就是效率,而且要求体积小。这些无疑Win32比MFC强,甚至连win32都可以不用。
3.简单的实现,win32上简陋的东西就够用了,或者就算不够用,但有STL等C++自带的,那么MFC就可以不需要了。win32更符合老编程员的习惯。而且如STL,同样功能下,事实上比MFC更优秀。mfc在d3d,opengl,ddk开发的弊端:
1.MFC是一种封装类,是个宠然大物。当你使用d3d,opengl等它没有封装的进行开发时,使用它完全是种浪费,不需要它为何要挂上它呢?如编d3d时,它本身已经实现了几乎所有的需求,别再拖个油瓶。
2.MFC不仅是一种封装类,更是封装了一种MFC编程思想。它具有特有的文档视图结构和消息影射。我们在做普通程序时,这些会给我们带来方便。但做d3d时,编程思想又回归win32,那样更直接和有效。这时MFC的编程思想和方式就不合适了。特别是DDK,那是跟底层打交道,要短小高效,跟MFC是两种不同追求风格。
3.事无绝对,选择合适的也就是最好的,如果你在进行D3D开发时,还要使用MFC的东西也是可以的。如果不是大量使用,可以把MFC中你需要的部份扒开单独使用。‍ win32指系统环境,MFC是微软的一个开发平台。
楼主应该不是想了解win32与MFC的区别吧?因为MFC以前主要就是在win32环境中进行开发的,二者不是一个层面的啊。
可能楼主说的是SDK与MFC吧。一句话,MFC是对SDK的包装。就像一瓶酒,它就是SDK,然后给这瓶酒加上一个盒子,它就成了MFC。

mfc与win32区别相关推荐

  1. MFC和WIN32区别

    从尽可能多的角度去描述.欢迎提出您的观点,不甚感激~_~!!! 基础概念: Win32:包含好多基本的API: MFC:里面包含好多类库,通过类库间接使用API: 经验之=============== ...

  2. Visual Stutio中win32控制台应用程序、win32项目、MFC项目的区别:

    我的理解,我首先把这几个货分为两大类:第一类包括win32控制台应用程序,第二类就是剩下那俩货.而剩下那俩货又有一个包含关系,即win32项目包含mfc.(我个人是这个区分的.) 一. 区别: (1) ...

  3. MFC和Win32之三___CGdiObject类和windows Gdi对象

    小结: 前面讲到的windows窗口对象,在windows下用句柄来代表之,并且用了一个数据结构WNDCLASS(窗口类)来描述之.同理,windows的Gdi对象也有一些句柄来代表之(比如hPen等 ...

  4. MFC进修笔记2——MFC和Win32

    1.MFC Object和Windows Object的关系 MFC中最首要的封装是对Win32 API的封装,是以,懂得Windows Object和MFC Object (C++对象,一个C++类 ...

  5. SDK,API,MFC 三者的区别

    SDK - Software development kit API - Application programming interface MFC - Microsoft Foundation Cl ...

  6. 在MFC,Win32程序中向控制台(Console)窗口输出调试信息

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  7. 由MessageBox和AfxMessageBox的使用异同所感

    我记得刚开始学图形界面编程的时候,接触的最早的一个函数应该就是MessageBox,之前都一直是控制台程序,突然能运行蹦出一个对话框感觉还是很新鲜的.当时还利用MessageBox写一些恶搞程序,利用 ...

  8. 解决表格刷新时抖动闪烁问题

    vue+element+el-table渲染数据闪烁 功能需求 由后端进行分页,前端使用element+el-table+el-pagination(分页).使用axios请求后端数据,实现分页加载表 ...

  9. Win32 Application 、Win32 Console Application、MFC工程项目

    Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序. Win32  Application 是标准 windows程序,完 ...

最新文章

  1. html如何压缩发送,css如何压缩?
  2. RESTful Web Service
  3. ios 不被遮挡 阴影_解决ios10导航栏底部阴影线条隐藏失效问题
  4. 重磅!云+X 案例征集正式启动啦!
  5. 50matches:更准确的搜索引擎
  6. 分享一款自用网站导航分类目录程序源码
  7. 实例1.1:通过HWND获得CWnd指针
  8. ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking
  9. hdu4576(概率DP)
  10. Selenium2Library(RF)浏览器打不开问题汇总
  11. java调用opencv人脸识别 error insufficient out of memory
  12. 调整计算机硬盘大小,分区助手调整硬盘分区大小图文教程?
  13. 2018DeeCamp笔试题目第二套B卷
  14. EndNote X8参考文献样式下载与自定义
  15. 40种让孩子爱上阅读的好方法!转给家长
  16. Microbiome综述:脊椎动物的皮肤微生物
  17. STM32: LCD显示
  18. java循环队列入队出队算法_循环队列实现
  19. 2017年最后两个工作日的年终总结
  20. ReactEurope Conf 参会感想

热门文章

  1. 【每日新闻】国内首款3D AI/MR芯片即将量产
  2. 计算机网络实验 数据链路4-6章 问答题
  3. dnf命令 (常用总结)
  4. 2月14,情人节双语送祝福!
  5. 分享Python采集的77个PHP整站程序源码
  6. Android 网星工具箱Beta版
  7. 《英语(二)》作文案例
  8. 除了ChatGPT,还能用什么计划管理软件提高效率?
  9. 电商客服售前售后话术培训资料合集(共150份)
  10. vue前端项目基于淘宝lib-flexible做手机端适配