C++的MFC和win32项目的区别有:
1、Win32:包含好多基本的API;
2、MFC:里面包含好多类库,通过类库间接使用API;有时候mfc是封装的类不能满足我们的要求,这时就需要我们自己用api来开发了。
3、win32是windows下的最基本的编程方式,使用它得到的代码最干净最有效率,也是最底层,它是其它所有方式实现的基础。
4、WIN32 SDK还可以编写DLL。
5、mfc是封装的类,最后还是会调用win32api,win32api开发效率低一些,但比较自由。
6、不用mfc的人群往往是从DOS时代开始从事窗口编程的人,他们早在mfc出世之前就编得一手好程序。
7、MFC主要还是引入面向对象的开发思维。而不是过程驱动的模式。
非MFC工程使用MFC库时,可参考以下步骤
1、工程设置中,将MFC的使用由原来的“使用标准windows库”改为“在共享DLL中使用MFC”(VC71)
如果是英文版,相关选项是:
Microsoft Foundation Classes: Use MFC in a shared dll, no using MFC(VC6)
2、头文件包含
不同的MFC类需包含的头文件是不一样的。
常用的类,如Cstring, Cedit 等,包含afxwinh就可以了
使用CFile类,则包含afxh
如果不清楚包含什么头文件的话,可以同msdn进行查询,msdn中,对于MFC类的介绍中,都会给出相应的header file requirement
3、#include 语句一定要写在首行
另外还要注意的是,如果#include语句是在一个头文件里,那么对应头文件的包含也要写在首行。示例如下:
=============
testh文件的内容如下:
#include <afxwinh> //保证该语句在首行
testcpp的文件内容如下:
#include “testh” //同样也要保证该语句在首行
=============
如果要用CFile
就#include <afxh>
两个都是开发在windows平台上运行的程序,能用mfc开发的,为什么要用win32api来开发呢,象一些windows上运行的3d引擎,都是用win32 api开发的,所以进行二次开发肯定是用win32 api,但是其他一些MS系统好像没有必要用api,用mfc就可以了,反正编译出来的exe都是可以运行的。
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所有功能。用着虽然方便,但距离细节毕竟远了,在个性、特殊化方面还有差距。
MFC以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。MFC是Win API与C++的结合,让用户使用微软的专业C++ SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C++ & MFC编制软件时的大量细节,如应用程序实现消息的处理、设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价,因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。
传统的win32开发(直接使用Windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,它将传统的API进行了分类封装,并且为你创建了程序的一般框架。
MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC。
WIN32 是Windows的一个子系统,也是最重要的一个。(还有POSIX子系统和OS/2子系统)Win32子系统为应用程序提供了使用系统资源的接口Win32 API,WIN32 API是Windows用户态下应用程序编程的基础。因此所有在WIN32API基础上的应用程序都是Win32应用程序。
MFC ,Microsoft Foundation Classes微软基础类库。这个类库不光封装了大多数的GUI系统对象和数据结构,还为开发者提供了开发框架,使原本复杂繁琐的Windows开发(尤其使界面开发)变得非常简单。
MFC是对API的封装,因此它能实现的功能只是API的子集。对于追求系统底层相关而且效率高的程序而言,MFC不够灵活而且开销也大。但对于图形界面开发,如果没有MFC而使用API的话那么开发简直是对人的折磨。
MFC很好用,但终归也是API的东西。懂了系统原理和接口,MFC也就全明白了。
以上就是关于C++的MFC和win32项目有什么区别全部的内容,包括:C++的MFC和win32项目有什么区别、Win32控制台应用程序怎样使用MFC中的CFile类、VS2010中的MFC应用程序是个什么概念,主要编写哪些方面的应用程序,而win32项目呢求详解!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)