Visual Studio C ++无法打开一些我没有刻意包含的标题

时间:2016-05-01 17:29:15

标签: c++ console-application windows-10

今天我想开始学习C ++。 但是我不断收到这些错误:

  

无法打开源文件“stdio.h”
  无法打开源文件“tchar.h”
  无法打开源文件“SDKDDKver.h”

但是,我甚至在默认的空win32控制台项目中获得这些。

有谁知道如何解决这个问题?

操作系统:Windows 10

我的默认代码如下:

    // HelloWorld.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"


    int main()
    {
        return 0;
    }

错误是:

Severity    Code    Description Project File    Line    Suppression State
Error (active)      cannot open source file "stdio.h"   HelloWorld  c:\Users\HP\Documents\Visual Studio 2015\Projects\HelloWorld\HelloWorld\stdafx.h    10  

Severity    Code    Description Project File    Line    Suppression State
Error (active)      cannot open source file "tchar.h"   HelloWorld  c:\Users\HP\Documents\Visual Studio 2015\Projects\HelloWorld\HelloWorld\stdafx.h    11  

Severity    Code    Description Project File    Line    Suppression State
Error (active)      cannot open source file "SDKDDKVer.h"   HelloWorld  c:\Users\HP\Documents\Visual Studio 2015\Projects\HelloWorld\HelloWorld\targetver.h 8   

Severity    Code    Description Project File    Line    Suppression State
Error (active)      cannot open source file "stdio.h"   HelloWorld  c:\Users\HP\Documents\Visual Studio 2015\Projects\HelloWorld\HelloWorld\stdafx.h    10  

在OUTPUT窗口中:

1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140\Toolset.targets(34,5): error MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

编辑:

我相信我安装了C ++,首先是因为我去了 档案>新>项目> Visual C ++
它只会显示“Install ... for C ++”,所以我安装了第一个选项之一(不记得它是哪一个),安装后允许我创建项目。

1 个答案:

答案 0 :(得分:0)

检查stdafx.h内容。标题可以包含在传递中。特别是,您引用的三个ehaders在VC ++ stdafx.h中用于新项目。如果你正在编程C ++,你可以简单地删除它们。

(它说明了微软在C和C ++之间做出选择的困难:他们不支持C99,但他们默认使用的是C头而不是C ++。甚至不是<cstdio>。)