【发布时间】:2016-09-12 15:58:31
【问题描述】:
我正在尝试将 Visual C++ VS 2010 项目更新到 VS 2012。我现在可以从 MSDN 重新安装 VS2010,因此我正在安装我的大学在 Dreamspark 网站上提供的 VS2012。
安装后我尝试构建项目,我收到了 100 多个错误,但第一个是这样的:
error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory
我按照这篇文章修复了这个错误,第二个答案,因为除了两个 Redistributables,x64,x86 已卸载,计算机上没有安装 VS2010:Fresh installation of VS 2012 will not build default console application: Missing SDKDDKVer.h (and stdio.h / CRT)
和:
- 删除了 Visual Studio 2010 x86、x64 Redistributables
- 重新安装了 Windows 7 SDK(以及用于 x64、x86 的 VS2010 Redistributables)
- 在 Project>Project Properties>Configuration 中为 Program Files/Microsoft SDKs/Windows/v7.1 中的 7.1 Include GL 和 7.1 Lib 文件夹添加了新的路径变量
这样做后,我将错误和警告的数量减少到 30 个。
最近的错误是:
error C1083: Cannot open include file: 'winapifamily.h': No such file or directory C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\comdef.h 51
我在这里看到了一篇关于如何硬编码 winapifamily.h 以解决 Codeblocks 中类似错误的帖子:"winapifamily.h: No such file or directory" when compiling SDL in Code::Blocks
但是 VS 2012 中的等效解决方案是什么?我会将 winapifamily.h 文件放在哪个目录中?
编辑:这里似乎有一个针对该问题的修补程序,即该应用程序最初是针对 Win7,但 VS2012 针对的是 Win8。所以我要在这里下载更新看看是否有效:https://www.microsoft.com/en-us/download/details.aspx?id=39305
【问题讨论】:
-
这些文件不应丢失。像这样的安装问题通常是由于在机器上安装了 VS 的试用版或预览版而没有正确卸载它引起的。注册表会记住太多关于先前安装的信息。使用更新可能会绕过问题,但不能保证您已修复所有问题。您可以通过使用 /uninstall /force 命令行选项运行安装程序来修复注册表损坏。
-
@HansPassant 这台机器上没有安装过 VS 的试用版/预览版。无论如何,这个修补程序解决了我最初遇到的问题。
标签: c++ visual-studio visual-studio-2010 visual-c++ visual-studio-2012