チュートリアル: コマンド ラインでの C++/CX プログラムのコンパイル
Note
新しい UWP アプリとコンポーネントでは、Windows ランタイム API の標準 C++17 言語投影である C++/WinRT を使用することをお勧めします。 C++/WinRT は、Windows SDK バージョン 1803 (10.0.17134.0) 以降で使用できます。 C++/WinRT は、全体がヘッダー ファイル内に実装され、最新の Windows API に対する最高級のアクセスを提供するように設計されています。
Microsoft C++ コンパイラ (MSVC) では Visual C++ コンポーネント拡張機能 (C++/CX) がサポートされ、Windows ランタイム プログラミング モデルをターゲットとする型と演算子が追加されています。 C++/CX を使用して、ユニバーサル Windows プラットフォーム (UWP) と Windows デスクトップ用のアプリをビルドできます。 詳細については、「C++/CX のツアー」とランタイム プラットフォーム用のコンポーネント拡張機能に関する記事を参照してください。
このチュートリアルでは、テキスト エディターを使って基本的な C++/CX プログラムを作成し、コマンド ラインでコンパイルします。 (表示されている C++/CX プログラムを入力する代わりに独自の C++/CX プログラムを使用することも、別のヘルプ記事の C++/CX コード サンプルを使用することもできます。この手法は、UI 要素のない小さなモジュールをビルドしてテストする場合に役立ちます)。
Note
Visual Studio IDE を使って C++/CX プログラムをコンパイルすることもできます。 IDE には、コマンド ラインでは利用できない、設計、デバッグ、エミュレーション、および配置のサポートが含まれているため、ユニバーサル Windows プラットフォーム (UWP) アプリをビルドする場合は IDE を使用することをお勧めします。 詳細については、C++ での UWP アプリの作成に関する記事を参照してください。
前提条件
C++ 言語の基本を理解していること。
C++/CX プログラムのコンパイル
C++/CX のコンパイルを有効にするには、/ZW コンパイラ オプションを使用する必要があります。 MSVC コンパイラによって、ターゲットが Windows ランタイムである .exe ファイルと、必要なライブラリへのリンクが生成されます。
コマンド ラインで C++/CX アプリケーションをコンパイルするには:
[開発者コマンド プロンプト] ウィンドウを開きます 具体的な手順については、「開発者コマンド プロンプト ウィンドウを開くには」を参照してください。
コンピューターのオペレーティング システムと構成によっては、コードを正常にコンパイルするために管理者の資格情報が必要な場合があります。 管理者としてコマンド プロンプト ウィンドウを実行するには、右クリックしてコマンド プロンプトのショートカット メニューを開き、[詳細]>[管理者として実行] の順に選択します。
コマンド プロンプト ウィンドウで現在の作業ディレクトリを、書き込み先のディレクトリ (ドキュメント ディレクトリなど) に変更します。
コマンド プロンプトで、「notepad basiccx.cpp」と入力します。
ファイルを作成するかどうかを確認するメッセージが表示されたら、[はい] を選択します。
メモ帳で、次の行を入力します。
using namespace Platform; int main(Platform::Array<Platform::String^>^ args) { Platform::Details::Console::WriteLine("This is a C++/CX program."); }
メニュー バーで、[ファイル]>[保存] の順に選択します。
Windows ランタイム プラットフォーム名前空間を使用する C++ ソース ファイルが作成されました。
コマンド プロンプトで、「
cl /EHsc /ZW basiccx.cpp /link /SUBSYSTEM:CONSOLE
」と入力します。cl.exe
コンパイラは、ソース コードを.obj
ファイルにコンパイルした後、リンカーを実行して、basiccx.exeという名前の実行可能プログラムを生成します。 /EHsc コンパイラ オプションは C++ 例外処理モデルを指定し、/link フラグはコンソール アプリケーションを指定します。basiccx.exe プログラムを実行するには、コマンド プロンプトで「basiccx」と入力します。
プログラムは、次のテキストを表示して終了します。
This is a C++/CX program.