web-dev-qa-db-ja.com

Visual Studio 2017はwindows.hを見つけることができません

Hell'o Visual Studio 2017(エンタープライズ)をインストールしました。VisualStudio 2015で作成したプロジェクトを開きました。プロジェクトはwindows.hライブラリを使用していますが、VS2017はこのライブラリを見つけることができません。これを修復する方法は?

18
Marcin Klima

私の解決策は:

  • プロジェクトプロパティを開きます
  • Into 一般-> SDKバージョン
  • 8.1ではなく10.0.15063.バージョンを選択しました

そしてそれは働いた。

59
ImFonky

Visual Studio Installerを再実行し、[変更]ボタンを選択することで、この問題を解決しました。 [ワークロード]画面が表示されたら、[個別のコンポーネント]タブをクリックして、最新の[Windows 10 SDK]チェックボックス(バージョン10.0.15063.0)をすべて選択しました。私の推測では、「Desktop C++ x86 and x64」のエントリは実際に修正されるものですが、インストーラを実行したときにこれらのオプションがチェックされておらず、すべてのオプションを確認できたためです。

enter image description here

24
James Pack

これは、レガシープロジェクトでインクルード/ライブラリパスをカスタマイズした場合に発生します。プロジェクトプロパティに独自の追加パスを追加した場合、VisualStudio 2017はプラットフォーム/ツールセットを切り替えるときにベースパスを自動的に把握できません-通常、自動的に正しいパスをそこに配置しますが、カスタマイズを追加した場合、VSはそれらに触れません。

これは正当な問題であり、Windows XPを対象とした古いプロジェクトをVS2017に移行したときに最近遭遇しました。ここにリスト/リンクされている回答やコメントはどれも役に立たない。 VisualStudio 2017インストーラーにはすべてのレガシSDKがありますが、<windows.h>などの重要なインクルードが見つからないという修正されたVSはありません。私の場合、プロジェクトはVS2013のv120ツールセットを使用していましたが、新しいVSではv140_xpに置き換えられました。

VS2017が理解できる正しいプラットフォームとツールセットを設定した後、次のことを行って問題を解決しました。

  • プロジェクトのプロパティを開き、VC++ディレクトリに移動し、「Include Directories」および「Library Directories」で<Inherit from parent or project defaults>を選択します。これにより、追加のパスが削除されます。

  • 「適用」をクリックします。これにより、$(VC_IncludePath_x86);$(WindowsSdk_71A_IncludePath_x86)などのパスがリセットされます(SDKによって異なります)。

  • ここに余分なパスを再度追加するか、C/C++ /全般->追加のインクルードディレクトリおよびリンカー/全般->追加のライブラリディレクトリに追加します。

11
Cozzamara

「一般=> Windows SDKバージョン」を別のバージョンに変更し、変更を送信してから元に戻すと、修正されました。

1
Aivar

インストールに問題がなければ、次のようになります。

C:\ Program Files(x86)\ Windows Kits\10\Include\10.0.15063.0\um\Windows.h

そのため、プロジェクトプロパティのインクルードパス上にあることを確認してください。

Project properties

または、IncludePathタグ​​行の.vcxprojファイルを手動で編集する場合:

<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared;</IncludePath>
1
Zanna

この問題は、C++プロジェクトをより更新されたVisual Studioバージョンからより小さなバージョンに移行するときに発生します。この問題を解決するには、プロジェクトのproperties-> General-> SDK Versionに移動します[ここで展開してインストール済みのSDKバージョンを表示し、利用可能なバージョンにダウングレードします{必要なものは利用できないようであるため、エラー}]。使用可能なSDKの1つが選択されたら、適用してコードに戻り、すべて修正される

1
Thanos

このステップは私のために働きます。 1. Visual Studioインストーラーを開きます2.メニュー「Visual studio comunity 2017」で->変更をクリックします3. c ++を使用したデスクトップ開発で->デスクトップおよびWindows 8.1 SDKでwindows10 SDKを有効にします

0
chokelive

私の解決策はパスをチェックすることでした。

ディレクトリを含める:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared;
%(AdditionalIncludeDirectories)

図書館のディレクトリ:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64

[ソリューションエクスプローラー]を右クリックします。ソリューション 'xxxxx'(1プロジェクト)行で[ソリューションの再ターゲット]をクリックします

シンボルフェッチのデバッグ設定を忘れずに設定してください-Windows 10はMicrosoftシンボルサーバーを使用する必要があります!

Visual Studio 2017インストーラーで個別のコンポーネントを選択し、Windows 8.1 SDKを手動で選択してインストールする必要があります。

0
Mardulu

また、最初にデフォルトの構成設定でVisual Studio 2017(コミュニティ)をインストールしました。VisualStudio 2015で作成したプロジェクトを開きました。プロジェクトはwindows.hライブラリを使用しますが、VS2017はこのライブラリとその他の問題を見つけることができません。最初に、不足している(SDK 10 ...など)コンポーネントをインストールします。問題の一部はなくなりましたが、windows.hはまだ見つかりません。この問題は、VS2017を完全にアンインストールしてから、すべてのオプションを一度にインストールすることで解決しました。

0