Visual Studio 2017 找不到 afxwin.h

来源:互联网 发布:实矩阵的奇异值分解 编辑:程序博客网 时间:2024/06/06 13:04

使用新安装的Visual Studio 2017创建MFC程序编译的时候出现错误:“afxwin.h”: No such file or directory

网上的资料,选择C++桌面开发的时候应该选择

MFC and ATL support(x86 and 64)

但是即使选择上面的选项,重新编译同样出现上面的错误。

经过分析发现下面的错误:

在以前的版本中的mfc的头文件都是:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include


但是在visual studio 2017中不是这样,是下面的目录:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\atlmfc\include


这就造成在包含目录中的

$(VCINSTALLDIR)/include;$(VCINSTALLDIR)/atlmfc/include;

通过计算他们是

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\include

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\atlmfc\include

但是上面的目录更本不存在,因此他找不到afxwin.h等等所有的mfc头文件。

在项目中直接修改添加进去头文件和库文件可以成功编译。windows 32项目同样存在这样的问题。


实际上$(VCINSTALLDIR)/include;$(VCINSTALLDIR)/atlmfc/include;的设置

来自C:\Users\CCH\AppData\Local\Microsoft\MSBuild\v4.0文件夹下的props文件。

将现有的所有*.props的文件全部删除后启动visual studio 2017创建MFC程序再编译OK!


原因是我安装了visual Studio 2017以前的版本2008 2010 2012 2013等四个版本。因此同名但是内容不同因此

发生了错误!