无法在Microsoft Visual Studio中打开Windows.h

Che*_*ron 30 c++ windows visual-studio kinect

首先:我正在使用Microsoft Visual Studio 2012

我是C#/ Java开发人员,现在我正在尝试使用Microsoft SDK和C++为kinect编程.所以我开始使用Color Basics示例,我无法编译它.起初,没有一个类能够找到Windows.h. 所以我安装了(或者重新安装,我不确定)Windows SDK,并将SDK的include目录添加到项目的包含"路径"中.然后所有问题都消失了,除了一个:

Error   5   error RC1015: cannot open include file 'windows.h'. C:\temp\ColorBasics-D2D\ColorBasics.rc  17  1   ColorBasics-D2D
Run Code Online (Sandbox Code Playgroud)

这就是错误.没有理由,系统可以找到它,因为它被用在多个其他文件中,只有这个文件无法使用它.作为参考,整个文件是bugging(ColorBasics.rc):

//------------------------------------------------------------------------------
// <copyright file="ColorBasics-D3D.rc" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// English (United States) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_APP                 ICON                    "app.ico"

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_APP DIALOGEX 0, 0, 512, 424
STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_CONTROLPARENT | WS_EX_APPWINDOW
CAPTION "Color Basics"
CLASS "ColorBasicsAppDlgWndClass"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "Screenshot",IDC_BUTTON_SCREENSHOT,238,391,50,14
    CONTROL         "",IDC_VIDEOVIEW,"Static",SS_BLACKFRAME,0,0,512,384
    LTEXT           "Press 'Screenshot' to save a screenshot to your 'My Pictures' directory.",IDC_STATUS,0,413,511,11,SS_SUNKEN,WS_EX_CLIENTEDGE
END


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_APP, DIALOG
    BEGIN
    END
END
#endif    // APSTUDIO_INVOKED


#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE 
BEGIN
    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
    "#include ""windows.h""\r\n"
    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
    "\0"
END

3 TEXTINCLUDE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // English (United States) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED
Run Code Online (Sandbox Code Playgroud)

小智 24

如果您还没有这样做,请尝试添加"SDK Path\Include"到:

Project ? Preferences ? C/C++ ? General ? Additional Include Directories
Run Code Online (Sandbox Code Playgroud)

并添加"SDK Path\Lib"到:

Project ? Preferences ? Linker ? General ? Additional Library Directories
Run Code Online (Sandbox Code Playgroud)

此外,尝试更改"Windows.h"<windows.h>

如果没有帮助,检查文件的物理存在,它应该在Visual Studio安装目录的"\ VC\PlatformSDK\Include"文件夹中.

  • 添加由变量表示的路径也对我有用 $(WindowsSdkDir)\include 和 $(WindowsSdkDir)\lib (2认同)

小智 13

启动Visual Studio.转到工具 - >选项,然后展开项目和解决方案.从树中选择VC++目录,然后从右侧的组合中选择"包含文件".

你应该看到:

$(WindowsSdkDir)\包括

如果缺少这个,你发现了一个问题.如果没有,请搜索文件.它应该位于

32位系统:

C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Include

64位系统:

C:\ Program Files(x86)\ Microsoft SDKs\Windows\v6.0A\Include

如果VS安装在默认目录中.

来源:http://forums.codeguru.com/showthread.php?465935-quot-windows-h-no-such-file-or-directory-quot-in-Visual-Studio-2008!-Help&p=1786039#post1786039

  • 在Windows 10上:C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.10240.0\um\Windows.h (7认同)
  • 在vs17中,它表示已被弃用.所以我无法编辑它,但问题仍然存在 (3认同)

Gok*_*oku 7

对于我的情况,我必须右键单击解决方案,然后单击“重新定位项目”。就我而言,我重新定位到 Windows SDK 版本 10.0.1777.0 和 Platform Toolset v142。我也不得不"Windows.h"改变<windows.h>

我在 Windows 10 计算机上运行 Visual Studio 2019 版本 16.25


Ste*_*ica 5

如果您的目标是Windows XP(v140_xp),请尝试安装Windows XP对C ++的支持

从Visual Studio 2012开始,默认工具集(v110)不再支持Windows XP。因此,Windows.h如果您的项目使用默认的C ++软件包将Windows XP作为目标,则可能会发生错误。

检查在项目的“ 平台工具集”中指定了哪个Windows SDK版本。(Project ? Properties ? Configuration Properties ? General)。如果您的Toolset结尾于_xp,则需要安装XP支持。

Visual Studio:项目工具集

打开Visual Studio安装程序,然后为您的Visual Studio版本单击“ 修改 ”。打开“ 单个组件”选项卡,然后向下滚动到“ 编译器”,“构建工具”和“运行时”。在底部附近,检查Windows XP对C ++的支持,然后单击“ 修改”开始安装。

Visual Studio安装程序:XP对C ++的支持

也可以看看: