Visual StudioでWindowsでC++プロジェクトを開発している昔、Visual Studioバージョンには独自のバージョンのCおよびC++ライブラリがあり、プロジェクトにはヘッダーにアクセスするためにWindows SDKの特定のバージョンが参照されますWin32プラットフォームへのアクセス複数のバージョンのWindows SDKがインストールされている場合は、環境変数を含む複雑なシステムがあり、デフォルトで使用するWindows SDK Visual Studioのバージョンを選択できます。Windowsキットとは何ですか?どのように動作しますか?
これは素晴らしいことではありませんでした。正常に動作するようにするには、ちょっとした掘り出しが必要でしたが、それはちょっとした仕事でした。
VS2012からVS2015にアップグレードしただけで、このシステムがどのように置き換えられたとしても、まったく壊れているか、またはわかりません。
conio.hからVS2015を含むシンプルなVS2012 C++コンソールアプリケーションをアップグレードすると、エラーは報告されずに破損します。どうして? conio.hはVisual StudioのC/C++ライブラリになくなり、代わりにWindows Kit 10に納まっています。プロジェクトをアップグレードしても、使用しているSDKは再インストールされません。
VS2015で新しいHello World C++アプリケーションを作成すると、C++プロジェクトインクルードディレクトリは$(VC_IncludePath)と$(WindowsSDK_IncludePath)を継承します。 $(VC_IncludePath)がC:\ Program Files(x86)\ Windows Kits \ 10からヘッダーを取得する間、$(WindowsSDK_IncludePath)はC:\ Program Files(x86)\ Windows Kits \ 8.1からヘッダーを取得します。
アップグレードではエラーが報告されず、単純なプロジェクトのアップグレードは失敗します。新しいコンソールプロジェクトをクリーンアップすると、2つの異なるWindowsキットインストールから同時にヘッダーが取得され、C:\ Program Files(x86)\ Microsoft SDKsおよびC:\ Program Files(x86)\ Windowsキットに8.1および10のエントリが追加されました。 Windowsキット8.1にはWin32およびWinRtヘッダが含まれ、Windowsキット10にはC/C++ヘッダが含まれています。
誤って設定されているインストールが壊れていますか、それともどのようになっているのでしょうか?
この混乱があるとすれば、これはどのように機能するのですか?私はWindowsキットについての情報をMSDNで検索しようとしましたが、全く別のものだったWindows Driver Kitに関するものを除いて何も出ていませんでした。
このライブラリ構成の背後にある理論的根拠とその使用方法を説明してくれたドキュメントはありませんか?
マイクロソフトは、非常に難しく、厳しい顧客があります。その名前はMicrosoftです。政治は退屈で誰の問題も解決しません。 Project> Properties> VC++ Directories> Include Directoriesの修正が必要です。 $(VC_IncludePath); $(WindowsSDK_IncludePath)を5つのディレクトリに評価します。おそらくプロジェクトが中断し、C/C++>一般>追加インクルードディレクトリ設定を使用してください。 –
申し訳ありませんが、私はこの問題のどの部分を解決する必要があるのか、どの部分が問題になっているのかを理解することができません。あなたがコードの簡単なサンプルを提供できるなら、それはおそらく役に立ちます。 – user34660
私は、Windowsキットが古いWindows SDKとどのように関係しているのか、そしてそれらの異なるバージョンで動作するようにプロジェクトを構成する方法を理解することを試みています。これは、Visual Studioプロジェクトの設定に関する質問であり、コードの問題ではありません。あなたが理解していない、またはそれほど興味がないのであれば、あなたの興味がないので、私の質問を閉じる投票はしないでください。なぜなら、良い答えが出ても他の人には非常に役立つからです。 – Neutrino