Visual c++ VS2015-Visual C++;控制台应用程序项目 我最近创建了一个VS2015解决方案来继续开发我正在开发的C++项目。每当我尝试构建项目时,我都会从标准C库头文件(如string.h、stdio.h等)中收到数百个错误

Visual c++ VS2015-Visual C++;控制台应用程序项目 我最近创建了一个VS2015解决方案来继续开发我正在开发的C++项目。每当我尝试构建项目时,我都会从标准C库头文件(如string.h、stdio.h等)中收到数百个错误,visual-c++,visual-studio-2015,Visual C++,Visual Studio 2015,为了找到问题的根源,我创建了一个新的、非常基本的VC++win32控制台应用程序项目,不知道是否会看到同样的编译器错误。以下是代码(ConsoleApplication1.cpp): 我曾尝试通过Windows“卸载或更改程序”实用程序“修复”Microsoft VC++2015可再发行版(x86),但没有成功。我还尝试将Visual Studio 2015作为一个整体进行修复 我在Windows7上 有人知道这是怎么回事吗?我是否指向了错误的include目录或其他内容?您的VS2015文件夹

为了找到问题的根源,我创建了一个新的、非常基本的VC++win32控制台应用程序项目,不知道是否会看到同样的编译器错误。以下是代码(ConsoleApplication1.cpp):

我曾尝试通过Windows“卸载或更改程序”实用程序“修复”Microsoft VC++2015可再发行版(x86),但没有成功。我还尝试将Visual Studio 2015作为一个整体进行修复

我在Windows7上

有人知道这是怎么回事吗?我是否指向了错误的include目录或其他内容?

您的VS2015文件夹中似乎安装了以前版本的VS的(部分)标题。VS2015中的标准标题存储在与CRT版本绑定的文件夹中(类似于
c:\ProgramFiles(x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
)。修复或重新安装VS2015无法解决此问题

我认为您需要卸载VS2015,完全删除文件夹
C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0
,然后重新安装。这可能会破坏安装在那里的其他版本(VS2013?),因此您可能希望/需要卸载该版本,然后修复VS2015


VS2015附带的头文件在这些行的一些错误消息中似乎没有列出“int\u CRTIMP\u ALTERNATIVE”,而VS2013附带的头文件则没有列出。“如果您已经预编译了头文件,则需要先包含该文件。”。它的默认名称是stdafx.h。输出中的
stdafx.cpp
似乎表明项目的某些部分正在使用预编译的头文件。请注意:重新编写VC redist无助于解决此类问题,因为可再发行文件只包含DLL,没有头文件。项目中包含一个“stdafx.cpp”,OP未在主源中包含“stdafx.h”。错误来自于编译“stdafx.cpp”,而不是文章中显示的主要源代码。@1201programalam我刚刚意识到我发布的项目是带有预编译标题的项目。我已更新到问题以反映这一点。不管怎样,我相信在这两种情况下都会出现相同的问题。我也安装了VS 2008,但是这些标题不应该放在
C:\Program Files(x86)\Microsoft Visual Studio 9.0
中吗?我还需要2008年才能完成一些遗留项目。@Sam它们应该是。我在看我的各种安装,这是我猜你的错误是从哪里来的。@dan你到底是什么意思?创建一个新的win32 console应用程序项目,将代码复制并粘贴到其中,然后尝试构建?@。还尝试将一个项目导入到VS2015中,该项目在VS2008中构建得很好,但在该项目中出现了相同类型的错误。为了记录在案,我之前没有在2015年在这台机器上尝试过VC++开发
#include <string>
#include <iostream>

int main()
{
    std::string s = "some data to print...";
    std::cout << "Printing: " << s.c_str()  << std::endl;
    return 0;
}
1>------ Build started: Project: ConsoleApplication1, Configuration: Release Win32 ------
1>  stdafx.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(309): error C2144: syntax error: 'int' should be preceded by ';'
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(309): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(311): error C2144: syntax error: 'int' should be preceded by ';'
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(311): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(311): error C2086: 'int _CRTIMP_ALTERNATIVE': redefinition
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(309): note: see declaration of '_CRTIMP_ALTERNATIVE'
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(317): error C2144: syntax error: 'int' should be preceded by ';'
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(317): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(317): error C2086: 'int _CRTIMP_ALTERNATIVE': redefinition
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(309): note: see declaration of '_CRTIMP_ALTERNATIVE'
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(320): error C2144: syntax error: 'int' should be preceded by ';'
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(320): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(320): error C2086: 'int _CRTIMP_ALTERNATIVE': redefinition
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\stdio.h(309): note: see declaration of '_CRTIMP_ALTERNATIVE'

....etc