XP和WIN 7的开发中使用MFC了吗?
我现在想知道XP和WIN7是否也是用MFC开发的?还是说MFC只是用来开发应用级的系统,而不用来开发操作系统。另外,我想知道Windows'系统是用什么开发工具开发的?...
我现在想知道XP和WIN7是否也是用MFC开发的?还是说MFC只是用来开发应用级的系统,而不用来开发操作系统。另外,我想知道Windows'系统是用什么开发工具开发的?
展开
2个回答
展开全部
先解释一下楼主可能误会的地方:操作系统是什么。
严格意义上来说,操作系统是指操作系统内核,也就是只包括:内存管理、进程管理、中断和异常,提供系统调用接口等等这样一个纯粹的系统,因此系统内核通常是很小的,比如linux的内核通常不会超过512K(看清楚哦,是K,不是M),windows系统由于不是开源的,因此无法准确地知道它们的内核有多大,但根据推测,也不会太大。
由于这样的系统太难操作了,所以开发人员给它添加了shell(也就是控制台窗口),添加了图形化界面;为了方便各种软件的运行,又添加了很多动态链接库,于是操作系统就越变越大,逐渐成为了现在这样的庞然大物。
因此,可以看出操作系统内核和操作系统外围软件追求的目标是不一致的。操作系统内核追求的是高效和稳定,操作系统外围软件追求的是方便和界面友好,因此它们的开发方式也存在差异。
操作系统内核开发无疑使用的是C++,个别特别需要考虑效率的地方可能还只用C写,因为到目前为止C/C++的效率在中高级语言中是最高的(排除汇编语言,它是低级语言),内核不追求图形化界面,因此肯定不会使用MFC等类似的库。
而在开发资源管理器,图形化界面的时候,追求的是外观漂亮和使用方便,因此肯定会使用到MFC(名字都叫Microsoft Foundation Classes,你想想,他自己能不用么?),当然,除了C++以外,外围开发可能还会用到更多的语言,比如C#等等。
以MFC为代表的C++和以.NET为代表的C#相比较,存在着很多的缺点,比如语法复杂,结构复杂,代码量大等等,以至于微软都曾经考虑过用逐步使用C#代替C++来开发操作系统外围软件,但这个实验遭遇了失败,这个失败的作品就是Vista,Vista中的许多外围软件都是使用C#开发的,由于C#的工作效率低于C++,导致了Vista的效率低下,微软不得不在win7的开发过程中重新使用C++,才获得了win7的成功,其实win7和vista的内核几乎完全一样。
总而言之,从目前来看,操作系统的内核只会使用纯粹的c/c++来写(不排除N年以后发生变化),而Windows系列的外围软件还是会主要基于MFC开发,但作为应用软件开发者而言,随着计算机性能的提高,C# 、JAVA等轻量级的纯粹面向对象的开发语言足可以满足应用软件的开发需要,因此在应用软件领域,JAVA 、C#将会越来越成为主流。
严格意义上来说,操作系统是指操作系统内核,也就是只包括:内存管理、进程管理、中断和异常,提供系统调用接口等等这样一个纯粹的系统,因此系统内核通常是很小的,比如linux的内核通常不会超过512K(看清楚哦,是K,不是M),windows系统由于不是开源的,因此无法准确地知道它们的内核有多大,但根据推测,也不会太大。
由于这样的系统太难操作了,所以开发人员给它添加了shell(也就是控制台窗口),添加了图形化界面;为了方便各种软件的运行,又添加了很多动态链接库,于是操作系统就越变越大,逐渐成为了现在这样的庞然大物。
因此,可以看出操作系统内核和操作系统外围软件追求的目标是不一致的。操作系统内核追求的是高效和稳定,操作系统外围软件追求的是方便和界面友好,因此它们的开发方式也存在差异。
操作系统内核开发无疑使用的是C++,个别特别需要考虑效率的地方可能还只用C写,因为到目前为止C/C++的效率在中高级语言中是最高的(排除汇编语言,它是低级语言),内核不追求图形化界面,因此肯定不会使用MFC等类似的库。
而在开发资源管理器,图形化界面的时候,追求的是外观漂亮和使用方便,因此肯定会使用到MFC(名字都叫Microsoft Foundation Classes,你想想,他自己能不用么?),当然,除了C++以外,外围开发可能还会用到更多的语言,比如C#等等。
以MFC为代表的C++和以.NET为代表的C#相比较,存在着很多的缺点,比如语法复杂,结构复杂,代码量大等等,以至于微软都曾经考虑过用逐步使用C#代替C++来开发操作系统外围软件,但这个实验遭遇了失败,这个失败的作品就是Vista,Vista中的许多外围软件都是使用C#开发的,由于C#的工作效率低于C++,导致了Vista的效率低下,微软不得不在win7的开发过程中重新使用C++,才获得了win7的成功,其实win7和vista的内核几乎完全一样。
总而言之,从目前来看,操作系统的内核只会使用纯粹的c/c++来写(不排除N年以后发生变化),而Windows系列的外围软件还是会主要基于MFC开发,但作为应用软件开发者而言,随着计算机性能的提高,C# 、JAVA等轻量级的纯粹面向对象的开发语言足可以满足应用软件的开发需要,因此在应用软件领域,JAVA 、C#将会越来越成为主流。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询