[全般] プロパティ ページ (プロジェクト)
この記事は、Windows 用の Visual Studio プロジェクトに適用されます。 Linux プロジェクトについては、「Linux C++ プロパティ ページのリファレンス」を参照してください。 CMake プロジェクトについては、「Visual Studio の CMake プロジェクト」を参照してください。 Android プロジェクトについては、「一般的なプロジェクトのプロパティ (Android C++)」を参照してください。 Android Makefile プロジェクトについては、「一般的なプロジェクトのプロパティ (Android C++ Makefile)」を参照してください。 Visual Studio 2019 では、UWP 以外 (Windows ランタイムまたはユニバーサル Windows プラットフォーム) のプロジェクトの一部のプロパティが [詳細] プロパティ ページに移動されました。
プロジェクトのプロパティ ページ ダイアログを開くには、ソリューション エクスプローラーでプロジェクト (ソリューションではなく) を選択します。 次に、メニュー バーから [プロジェクト]>[<プロジェクト名> のプロパティ] メニューを選択します。 ソリューション エクスプローラーでプロジェクト ノードを右クリックして、ショートカット メニューから [プロパティ] を選択します。
プロパティ ページ ダイアログの [構成プロパティ]>[全般] プロパティ ページに、プロジェクト タイプに基づいてプロジェクトのプロパティが表示されます。 これらのプロパティは、プロジェクト タイプに応じて、1 つまたは 2 つの見出しの下にまとめられます。
全般
[プロジェクトの既定値]
全般
[全般] プロパティの見出しには、次のプロパティの組み合わせが含まれます。
対象プラットフォーム
プロジェクトが実行されるプラットフォームを指定します。 Windows、Android、または iOS などです。 値 Windows 10 は、プロジェクトがユニバーサル Windows プラットフォームを対象としていることを意味します。 Windows の他のバージョンを対象としている場合は、バージョンは一覧に表示されず、このフィールドの値は単に "Windows" と表示されます。 このプロパティは、プロジェクトを作成するときに設定される読み取り専用フィールドです。
[ターゲット プラットフォーム バージョン]
プロジェクトをビルドするために使用する Windows SDK のバージョンを指定します。 このプロパティは、プロジェクト タイプでサポートされている場合にのみ表示されます。 10.0 を選択して、Windows SDK の最新バージョンを指定できます。 アプリでこの Windows SDK バージョンの機能を利用できるにもかかわらず、おそらく機能の一部が失われているためこれらの機能が使用されずに以前のバージョンで実行されている場合、このプロパティの値と [ターゲット プラットフォームの最小バージョン] プロパティは異なる可能性があります。 このような場合は、コードで実行時に実行しているプラットフォームのバージョンを確認し、古いバージョンのプラットフォームでは使用できない機能は無効にする必要があります。
ターゲット プラットフォームの最小 バージョン
プロジェクトを実行できるプラットフォームの最小バージョンを指定します。 このプロパティは、プロジェクト タイプでサポートされている場合にのみ表示されます。 アプリで新しい Windows SDK バージョンの機能を利用できるにもかかわらず、おそらく機能の一部が失われているためこれらの機能が使用されずに以前のバージョンで実行されている場合、この値を設定します。 値を小さい値に設定した場合、実行時にコードが実行されているプラットフォームのバージョンを確認する必要があります。 その後、以前のバージョンのプラットフォームでは使用できない機能を無効にします。
C++ プロジェクト システムでは、このオプションは適用されません。 これは、C# や JavaScript などの他の言語と一貫性を保ち、プロジェクトを使用するユーザーに分かりやすくするために含められています。 最小バージョンで使用できない機能を使用しても場合、Microsoft C++ ではエラーは生成されません。
Windows SDK バージョン
このプロパティは、Windows ターゲット プラットフォームに対して、プロジェクトで必要な Windows SDK のバージョンを指定します。 Visual Studio インストーラーが C++ ワークロードをインストールするときに、Windows SDK の必要な部分もインストールされます。 コンピューターに他の Windows SDK バージョンがある場合は、インストールされている各バージョンがドロップダウンに表示されます。
Windows 7 または Windows Vista を対象とするには、値 8.1 を使用します。Windows SDK 8.1 はこれらのプラットフォームと下位互換性があるためです。 以前のバージョンを対象とする場合は、targetver.h
で _WIN32_WINNT
の適切な値を定義します。 Windows 7 では、これは 0x0601 になります。 詳細については、WINVER
と _WIN32_WINNT
の変更に関する記事を参照してください。
Visual Studio インストーラーのオプション コンポーネントとして含まれている Windows XP プラットフォーム ツールセットをインストールして、Windows XP および Windows 2003 Server プロジェクトをビルドできます。 このプラットフォーム ツールセットを入手して使用する方法については、「Windows XP 用プログラムの構成」を参照してください。 プラットフォーム ツールセットの変更に関する詳細については、「方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更する」を参照してください。
出力ディレクトリ
リンカーなどのビルド ツールが、ビルド処理で作成されるすべての最終出力ファイルを置くディレクトリを指定します。 通常は、このディレクトリには、リンカー、ライブラリアン、BSCMake などのツールの出力が保存されます。 既定では、このプロパティはマクロの組み合わせ $(SolutionDir)$(Configuration)\
によって指定されるディレクトリです。
プログラムを使用してこのプロパティにアクセスする方法については、「OutputDirectory」を参照してください。
中間ディレクトリ
コンパイラなどのツールが、ビルド処理で作成されるすべての中間ファイルを置くディレクトリを指定します。 通常は、このディレクトリに C/C++ コンパイラ、MIDL、リソース コンパイラなどのツールの出力が保存されます。 既定では、このプロパティはマクロ $(Configuration)\
によって指定されるディレクトリです。
プログラムを使用してこのプロパティにアクセスする方法については、「IntermediateDirectory」を参照してください。
ターゲット名
このプロジェクトで生成されるファイル名を指定します。 既定では、このプロパティはマクロ $(ProjectName)
によって指定されるファイル名です。
ターゲットの拡張子
このプロジェクトによって生成されるファイル拡張子 (.exe
や .dll
など) を指定します。 一部の Visual Studio 2019 プロジェクト タイプでは、このプロパティは [詳細] プロパティ ページに移動されました。
消去時に削除する拡張子
[ビルド]>[消去] メニュー コマンドを選択すると、プロジェクトの構成がビルドされる中間ディレクトリからファイルが削除されます。 [消去] コマンドを実行するか、リビルドを行うと、ビルド システムによって指定した拡張子を持つファイルが削除されます。 ビルド システムでは、配置場所に関係なく、ビルドの既知の出力も削除されます。 削除されるファイルには、.obj
ファイルなどのあらゆる中間出力も含まれます。 拡張子を区切るには、セミコロン (;
) を使用してください。 拡張子ではワイルドカード文字 (*
、?
) を指定できます。
プログラムを使用してこのプロパティにアクセスする方法については、「DeleteExtensionsOnClean」を参照してください。 一部の Visual Studio 2019 プロジェクト タイプでは、このプロパティは [詳細] プロパティ ページに移動されました。
ビルド ログ ファイル
プロジェクトをビルドしたときに作成されるログ ファイルの、既定以外の場所を指定できます。 既定の場所はマクロの組み合わせ $(IntDir)$(MSBuildProjectName).log
によって指定されます。 一部の Visual Studio 2019 プロジェクト タイプでは、このプロパティは [詳細] プロパティ ページに移動されました。
プロジェクト マクロを使用して、ディレクトリの場所を変更できます。 詳細については、ビルドのコマンドとプロパティの共通マクロに関する記事を参照してください。
プラットフォーム ツールセット
現在の構成をビルドするために使用するツールセットを指定します。 このプロパティを使用することで、プロジェクトの対象を別バージョンの Visual C++ のライブラリおよびコンパイラにすることができます。 既定では、Visual Studio C++ プロジェクトの対象は、Visual Studio によってインストールされた最新のツールセットになります。 その代わりに、Visual Studio の以前のバージョンの複数のツールセットによってインストールされたツールセットを選択できます。 一部の古いツールセットでは、Windows XP または Vista で実行される実行可能ファイルを作成できます。 プラットフォーム ツールセットの変更方法に関する詳細については、「方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更する」を参照してください。
マネージド インクリメンタル ビルドを有効にする
マネージド プロジェクトの場合、このプロパティにより、アセンブリの生成時に、外部からの可視性の検出が可能になります。 マネージド プロジェクトへの変更が他のプロジェクトから見えない場合、依存プロジェクトはリビルドされません。 このオプションにより、マネージド プロジェクトを含むソリューションのビルド時間を大幅に短縮できます。 Visual Studio 2019 プロジェクトで、このプロパティは [詳細] プロパティ ページに移動されました。
[構成の種類]
プロジェクト出力とその必要なツールを指定します。 UWP プロジェクトでは、このプロパティは [プロジェクトの既定値] の見出しの下に表示されます。 プロジェクト タイプに応じて選択できる構成のタイプがいくつかあります。
アプリケーション (.exe)
リンカーのツールセット (C/C++ コンパイラ、MIDL、リソース コンパイラ、リンカー、BSCMake、XML Web サービス プロキシ ジェネレーター、カスタム ビルド、ビルド前のイベント、リンク前のイベント、ビルド後のイベント) を表示します。
ダイナミック ライブラリ (.dll)
リンカー ツールセットを表示し、/DLL
リンカー オプションを指定して、CL コマンド ラインに _WINDLL
プリプロセッサ定義を追加します。
Makefile
メイクファイル ツールセット (NMake) を表示します。
スタティック ライブラリ (.lib)
ライブラリアン ツールセットを表示します。 リンカーをライブラリアンに置き換え、XML Web サービス プロキシ ジェネレーターを省略することを除けば、リンカー ツールセットと同じです。
Utility
ユーティリティのツールセット (MIDL、カスタム ビルド、ビルド前のイベント、ビルド後のイベント) を表示します。
プログラムを使用してこのプロパティにアクセスする方法については、「ConfigurationType」を参照してください。
C++ 言語標準
使用する C++ 言語標準を指定します。 既定値は、/std:c++14
です。 C++17 機能を使用するには /std:c++17
、C++20 機能を使用するには /std:c++20
、提案された C++23 機能またはその他の試験的な機能を使用するには /std:c++latest
を指定します。 詳細については、「/std
(言語標準バージョンの指定)」を参照してください。
C 言語標準
使用する C 言語標準を指定します。 既定値は Legacy MSVC です。これにより、C89、C99 の一部、および Microsoft 固有の拡張機能が実装されます。 C11 機能を使用するには /std:c11
、C17 機能を使用するには /std:c17
を指定します。 詳細については、「/std
(言語標準バージョンの指定)」を参照してください。
[プロジェクトの既定値]
[構成の種類]
プロジェクト出力とその必要なツールを指定します。 UWP プロジェクトでは、このプロパティは [プロジェクトの既定値] の見出しの下に表示されます。 プロジェクト タイプに応じて選択できる構成のタイプがいくつかあります。
アプリケーション (.exe)
リンカーのツールセット (C/C++ コンパイラ、MIDL、リソース コンパイラ、リンカー、BSCMake、XML Web サービス プロキシ ジェネレーター、カスタム ビルド、ビルド前のイベント、リンク前のイベント、ビルド後のイベント) を表示します。
ダイナミック ライブラリ (.dll)
リンカー ツールセットを表示し、/DLL
リンカー オプションを指定して、CL コマンド ラインに _WINDLL
プリプロセッサ定義を追加します。
Makefile
メイクファイル ツールセット (NMake) を表示します。
スタティック ライブラリ (.lib)
ライブラリアン ツールセットを表示します。 リンカーをライブラリアンに置き換え、XML Web サービス プロキシ ジェネレーターを省略することを除けば、リンカー ツールセットと同じです。
Utility
ユーティリティのツールセット (MIDL、カスタム ビルド、ビルド前のイベント、ビルド後のイベント) を表示します。
プログラムを使用してこのプロパティにアクセスする方法については、「ConfigurationType」を参照してください。
MFC の使用法
MFC プロジェクトが MFC DLL に静的にリンクするか動的にリンクするかを指定します。 MFC 以外のプロジェクトでは、[標準 Windows ライブラリを使用する] を選択します。 Visual Studio 2019 プロジェクトで、このプロパティは [詳細] プロパティ ページに移動されました。
プログラムを使用してこのプロパティにアクセスする方法については、「useOfMfc」を参照してください。
文字セット
_UNICODE
または _MBCS
プリプロセッサ マクロを設定するかどうかを指定します。 該当する場合は、リンカーのエントリ ポイントにも影響します。 Visual Studio 2019 プロジェクトで、このプロパティは [詳細] プロパティ ページに移動されました。
プログラムを使用してこのプロパティにアクセスする方法については、「CharacterSet」を参照してください。
共通言語ランタイム サポート
/clr
コンパイラ オプションが使用されます。 Visual Studio 2019 プロジェクトで、このプロパティは [詳細] プロパティ ページに移動されました。
プログラムを使用してこのプロパティにアクセスする方法については、「ManagedExtensions」を参照してください。
.NET Framework 対象バージョン
マネージド プロジェクトでは、ターゲットにする .NET Framework バージョンを指定します。 Visual Studio 2019 プロジェクトで、このプロパティは [詳細] プロパティ ページに移動されました。
プログラム全体の最適化
/GL
コンパイラ オプションと /LTCG
リンカー オプションを指定します。 既定では、このプロパティはデバッグ構成に対しては無効、リリース構成に対しては有効になります。 Visual Studio 2019 プロジェクトで、このプロパティは [詳細] プロパティ ページに移動されました。
Windows ストア アプリのサポート
このプロジェクトが Windows ランタイム (ユニバーサル Windows プラットフォーム (UWP)) アプリをサポートするかどうかを指定します。 詳細については、「/ZW
(Windows ランタイムのコンパイル)」および Windows デベロッパーにある UWP ドキュメントを参照してください。
Windows デスクトップ互換性
デスクトップ アプリもサポートするために、この Windows ランタイム プロジェクトの出力を有効にします。 このプロパティは、プロジェクト ファイルの <DesktopCompatible>
値を設定します。 [Windows デスクトップ互換性] プロパティは、Visual Studio 2019 バージョン 16.9 以降で使用できます。