![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
VC++和MFC到底是什么关系
展开全部
vc++是一款1998年推出的编译器(准确的说就是集成开发环境)。
mfc是一款应用程序框架,它的出现甚至比vc++更早,所有前一位说vc++包括mfc是不正确的。而且不光vc++,vs里也提供mfc。准确的说class wizard才是vc或者vs特有的,class wizard这个插件作为vc等ide的一个功能提供了代码补全的功能,让用户使用mfc进行编程时更便捷。
但是,因为mfc是开源的,理论上你可以参考它的代码(如果你真有那个闲情逸致的话)把它做一定修改移植到别的ide上去用,如果你更有心,还可以为你移植的那个ide开发一个类似class wizard的插件,那么那个ide也可以使用mfc了。
至于说mfc只是做界面的,这有点狭隘了,首先windows api就提供了界面的绘制功能,你不用mfc一样可以创作窗口程序,并在其上绘图。其次,mfc是应用程序框架,它封装了常用的windows api,将其以一定层次呈现在用户面前。在编译器不支持rtti的情况下,mfc的开发者生生地使用他们的方法在这个框架中提供rtti,将windows的消息响应机制通过message map(消息映射),message routing(消息路由)更自然地呈现在用户面前,在c++对容器的支持不那么完善的情况下,提供了便捷的链表类。总而言之,mfc绝不仅仅是做界面的。
最后说一句,mfc确实凝聚了一帮微软大牛的技术结晶,可是毕竟是20年前的结晶,事实上现在确实差不多被淘汰了(vc++也是)。。。。
mfc是一款应用程序框架,它的出现甚至比vc++更早,所有前一位说vc++包括mfc是不正确的。而且不光vc++,vs里也提供mfc。准确的说class wizard才是vc或者vs特有的,class wizard这个插件作为vc等ide的一个功能提供了代码补全的功能,让用户使用mfc进行编程时更便捷。
但是,因为mfc是开源的,理论上你可以参考它的代码(如果你真有那个闲情逸致的话)把它做一定修改移植到别的ide上去用,如果你更有心,还可以为你移植的那个ide开发一个类似class wizard的插件,那么那个ide也可以使用mfc了。
至于说mfc只是做界面的,这有点狭隘了,首先windows api就提供了界面的绘制功能,你不用mfc一样可以创作窗口程序,并在其上绘图。其次,mfc是应用程序框架,它封装了常用的windows api,将其以一定层次呈现在用户面前。在编译器不支持rtti的情况下,mfc的开发者生生地使用他们的方法在这个框架中提供rtti,将windows的消息响应机制通过message map(消息映射),message routing(消息路由)更自然地呈现在用户面前,在c++对容器的支持不那么完善的情况下,提供了便捷的链表类。总而言之,mfc绝不仅仅是做界面的。
最后说一句,mfc确实凝聚了一帮微软大牛的技术结晶,可是毕竟是20年前的结晶,事实上现在确实差不多被淘汰了(vc++也是)。。。。
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-21 广告
在C++编程领域,北京引力弹弓科技有限公司重视扎实的基础。C++作为一门高效、灵活的编程语言,其面向对象、泛型编程等特性为开发高质量软件提供了强大支持。我们鼓励员工深入理解C++的内存管理、类与对象、继承与多态等核心概念,并通过实际项目不断...
点击进入详情页
本回答由MarsCode提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询