MFC程序编译时VS2008提示无法打开包含文件

这个头文件包含在“stdafx.h”中
造成这个问题的主要原因是这个工程原来可能是在打了SP1补丁的VS2008下创建的,SP1是微软08年发布的一个补丁,用于改善VS的一些特性。可能是SP1后加入了这个头文件,用于提供对功能区和控制条的MFC支持
#include     // MFC support for ribbons and control bars
一种解决方法就是安装SP1以提供这些支持,但是由于安装SP1耗时费力还占用了大量硬盘空间所以不是一个很好的办法,何况这些新特性支持我们通常也用不上。
另一个取巧的解决方法是在stdafx.h中将这行代码注释掉,然后在它的后面加上
#define CWinAppEx CWinApp
如:
//#include     // MFC support for ribbons and control bars
#define CWinAppEx CWinApp 
由于SP1后,为了提供更多的功能支持,将CWinApp升级为CWinAppEx。个人认为那个头文件可能提供了这些支持,所以我们将其重新定义为CWinApp避免注释那个头文件后可能产生的连带问题。同样这样做的另一个好处是可以大大的减小我们生成的EXE文件的尺寸。原因是VS2008 SP1补丁将CWinApp升级为CWinAppEx,增加了一些功能支持,所以最终生成的文件会变大。而一般一个小程序根本不需要这些额外的功能特性,所以将它替换回来也会降低最终生成文件的大小提高执行效率。

你可能感兴趣的:(MFC,c++面试题,c++)