web-dev-qa-db-ja.com

Visual Studioでインクルードパスはどのように機能しますか?

Visual Studioに夢中になり、何か間違ったことをしているのではないかと疑っています。

これが私がしていることです。私はずっと前にVisual Studio(Pro '08)をインストールし、Windows SDK(Win 7 x64)をインストールしました。

常に、windows.hが見つかりません。すべてのプロジェクトのプロジェクト設定にC:\Program Files\Microsoft SDKs\Windows\v7.0\Includeを含めるのは簡単ですが、これを行うには適切な方法ではないように感じます。どういうわけかVisual Studioにこれらのファイルをグローバルに認識させる方法はありますか?
上記のディレクトリをpath変数に含めようとしましたが、何も変更されませんでした。

また、同じディレクトリ内でwindows.hをランダムに見つけますが、winresrc.hは見つけません。

編集:
それは私のマシンに問題がありました。どういうわけか、Visual Studioは、Windows SDKが間違った場所にあると考えました。修正については、受け入れられた回答とコメントを参照してください。

43
bastibe

この回答はVisual Studioの古いバージョンにのみ適用されます-最新バージョンの最新の回答を参照してください。

ここでVisual Studioのグ​​ローバルインクルードパスを設定できます。

Tools/Options/Projects and Solutions/VC++ Directories/Include files

22
RichieHindle

@RichieHindleソリューションは、Visual Studio 2012で非推奨になりました。VSスタジオプロンプトでは次のように述べられています。

VC++ディレクトリは、すべてのプロジェクトにデフォルトで追加されるユーザープロパティシートとして使用できるようになりました。

インクルードパスを設定するには、プロジェクトを右クリックして次の場所に移動する必要があります。

Properties/VC++ Directories/General/Include Directories

スクリーンショット: enter image description here

60
stackunderflow

VisualStudio 2013および2015でも機能するソリューションを再開するには:

現在のプロジェクトのみにインクルードパスを追加します

Solution Explorer(VisualStudio-mainwindowのパレットウィンドウ)で、プロジェクトのショートカットメニューを開き、[プロパティ]を選択してから、左側のペインで[プロパティページ]ダイアログボックスの[構成プロパティ]を展開し、[VC++ディレクトリ]を選択します。追加のインクルードパスまたはlibパスはそこで指定可能です。

その(Stackunderflowおよびuser1741137は上記の回答で述べています。 Microsoftが [〜#〜] msdn [〜#〜] で説明していることです。

すべての新しいプロジェクトにinclude-pathを自動的に追加します

その質問、何ジェイ・エルストンは上記のコメントで尋ねており、私の目には非常に明白で燃えている質問は何ですか、ここでは答えられていないようですまだ。

VisualStudioでそれを行うための定期的な方法があります( CurlyBrace.com を参照)、私の経験では正しく動作していません。ある意味では、それは一度だけしか機能せず、その後は、それ以上拡張できず、取り外しもできなくなります。 Steve Wilkinson のアプローチは、StackOverflowの別の密接に関連するスレッドで、 'program files'のMicrosoft-Factory-XML-fileを編集します-Microsoftは、外国の何かに会います。効果は強力に予測不可能です。まあ、私はむしろそれをそれほど危険ではないと判断するのが好きですが、とにかくVisualStudioを少なくとも他の人にとって理解できないようにする最良の方法です。

それに比べてうまく機能しているのは、対応するUser-XML-fileの編集です。

C:\ Users\UserName\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props

または

C:\ Users\UserName\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props

例えば:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>C:\any-name\include;$(IncludePath)</IncludePath>
    <LibraryPath>C:\any-name\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

ディレクトリ「C:\ any-name\include」が現在のinclude-pathに追加され、ディレクトリ「C:\ any-name\lib」がlibrary-pathに追加されます。ここでは、拡張および削除の意味で前に編集し、すべてを削除して、タグのコンテンツ全体を削除できます。

VisualStudio自体を作成するのは、CurlyBraceが説明するように、通常の方法で実行します。前述のように、CurlyBrace-way以降は編集できませんが、XML編集方法では編集できません。

詳細については、 Brian Tyler @ MSDN-Blog 2009をご覧ください。確かにそれほど新鮮ではありませんが、Microsoftが常にリンクしているものです。

23
Pablo el Puro

すべてのソリューションではなくプロジェクトのインクルードパスのみを変更しようとしている場合は、Visual Studio 2008でこれを行います。ソリューションナビゲーターでプロジェクトの名前を右クリックします。ポップアップメニューから[プロパティ]を選択します。プロパティページのダイアログで、[構成プロパティ]-> [C/C++ /全般]を選択します。 [追加のインクルードファイル]ラベルの横にあるテキストボックスをクリックして、適切なディレクトリを参照します。 OKを選択します。

私を悩ますのは、元の質問に対する回答の一部が、言及されたVisual Studioのバージョンに適用されないことです。

2
user1741137

Windows SDKを正常に使用するには、インクルードファイルをプロジェクトで使用できるようにするだけでなく、ライブラリファイルと実行可能ファイル(ツール)を作成する必要があります。これらすべてのディレクトリを設定するには、 WinSDK Configuration Tool を使用する必要があります。

2
Piotr Dobrogost