Visual Studio 2010 C++,无法打开包括文件:'afxwin.h'、'TCHAR.H'和'cassert'。

7
我刚开始使用VS2010,尝试编译一个之前在VS2008上工作的项目,但出现了以下错误:
stdafx.h(43): fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory stdstring.h(619): fatal error C1083: Cannot open include file: 'TCHAR.H': No such file or directory threads.h(52): fatal error C1083: Cannot open include file: 'cassert': No such file or directory
我通过谷歌搜索发现,这种类型的错误在VS2010 Express版本中经常发生。但我使用的是VS2010专业版,并且我已经检查过所有缺失的文件都在正确的位置: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include 和 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include 问题是,stdafx.h中的其他头文件与afxwin.h在同一个目录中,但没有报错。
我还检查了属性管理器中的VC++目录,其中“包含目录”为“$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(FrameworkSDKDir)\include;$(WindowsSdkDir)include”。
我是否忘记了检查其他内容?非常感谢您的帮助。

你检查过文件是否已添加到你的项目中了吗? - Trisped
听起来你在旧版目录管理器中设置了一些路径,但它们没有转移到新版本中,并且没有包含在项目目录设置中。检查这两个以查看缺少什么。 - Robinson
2
我手动将这些头文件目录添加到C/C++ => 其他的“附加包含目录”中,并得到了一个解决方法。我认为我的VS安装可能在一开始时有些问题。 - mile
听起来像是INCLUDE环境变量以及Visual C++中对应的设置出了问题。安装目录是否移动到了不同的驱动器或路径下? - Ben Voigt
1个回答

1
属性浏览器是您想要查看的位置。Afxwin.h在..\atlmfc\include中,tchar.h和cassert在..\include中,您可能认为这是全局类型属性,但事实证明这并不是那么简单。这是我在从2008年升级时遇到的最大问题。这不再是应用程序选项,而是用户属性。
在更改任何内容之前,请查看属性浏览器并阅读MSBuild文档,因为虽然新格式更强大和灵活,但它不能平稳地从旧格式升级。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接