
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。
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主要还是引入面向对象的开发思维。而不是过程驱动的模式。
///////////////////////////检索账号/////////////////////
char Buf[10];
Buf[10]=0;
printf(Buf,"%d",str);
for(int i=0;i<sizeof(Buf);i++)
Buf[10]=0;
这句错了,下标10已经越界,10的数组下标范围0~9,最大下标为9
printf(Buf,"%d",str);
这句错了,字符串拷贝,应该用sprintf而不是printf,另外%d干啥用?数字?,要用%s
for(int i=0;i<sizeof(Buf);i++)
这里有问题,sizeof(Buf)结果是10,你等于遍历了数组而不是字符串,必然会访问并判断字符串结束符'\0',而这个在之后的if判断中必然报错“账号必须为数字或字母”,如果没这个提示,说明你程序根本没有运行到这一步就报错了,这里判定条件应该是Buf[i]!='\0'
建立Win32应用程序:
打开VC6->菜单File->New->Projects->Win32 Application->输入路径和工程名->OK
建立MFC应用程序:
打开VC6->菜单File->New->Projects->MFC AppWizard(exe)->输入路径和工程名->OK
以上就是关于C++MFC和Win32有什么不一样全部的内容,包括:C++MFC和Win32有什么不一样、C++的MFC和win32项目有什么区别、mfc程序运行时出现了未经处理的win32异常等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)