Win32 API を使うデスクトップ Windows アプリの概要

WIN32 API (Windows API とも呼ばれます) は、Windows とハードウェアへの直接アクセスを必要とするネイティブ C/C++ の Windows アプリケーションのために用意された最初のプラットフォームです。 (Windows 10 用 UWP アプリに対して) .NET や WinRT などのマネージド ランタイム環境に依存することなく、最上級の開発環境を提供します。 これにより、Win32 API 最高レベルのパフォーマンスとシステム ハードウェアへの直接アクセスを必要とするアプリケーションに適したプラットフォームになっています。

Note

このドキュメントでは、Win32 API を使ってデスクトップ Windows アプリを作成する方法について説明します。 Win32 API は、デスクトップ Windows アプリの構築に使用できるいくつかのアプリ プラットフォームの 1 つです。 他のアプリ プラットフォームの詳細については、プラットフォームの選択に関する記事を参照してください。

準備

以下の手順に従って、Win32 API を使う Windows 10 用デスクトップ アプリの作成を始めてください。

  1. Visual Studio 2019 をダウンロードまたは更新します。 Visual Studio 2019 をまだお持ちでない場合は、Microsoft Visual Studio Community 2019 を無料でインストールできます。 Visual Studio をインストールするときは、必ず [C++ によるデスクトップ開発] オプションを選びます。 ダウンロード リンクについては、ダウンロードのページを参照してください。

    Note

    Visual Studio をインストールするときに、他のプロジェクトの種類やアプリ プラットフォームにアクセスしてデスクトップ Windows アプリを構築する場合は、必要に応じて .NET デスクトップ開発ユニバーサル Windows プラットフォーム開発のオプションを選択できます。

  2. 開発用コンピューター上でデスクトップ アプリを MSIX パッケージにビルドし、パッケージ アプリをテストまたはデバッグする場合は、お使いのコンピューター上で [開発者モード] を有効にする必要があります。

Note

開発用コンピューターの設定や他の機能やパッケージのインストールに使用できるスクリプトについては、この GitHub プロジェクトを参照してください。

Win32 API を使ってデスクトップ アプリを作成する方法

Win32 API を使ってデスクトップ アプリを構築するのが初めての場合は、入門として次のチュートリアルと記事が役に立ちます。

トピック 説明
最初の C++ Win32 アプリを作成する このチュートリアルでは、Win32 および COM API を使って C++ で Windows プログラムを作成する方法について説明します。
DirectX を使って最初のアプリを作成する この基本的なチュートリアルを読んで DirectX アプリ開発を始めることができます。
64 ビット Windows プログラミング ガイド 64 ビット バージョンの Windows オペレーティング システムのプログラミングについて説明します。
Windows ヘッダーの使用 Windows ヘッダー ファイルで使われるいくつかの規約の概要について説明します。

デスクトップ アプリのサンプルを参照することもできます。

Windows 10 用デスクトップ アプリを最新化する

既存のデスクトップ Win32 アプリがある場合、ユニバーサル Windows プラットフォーム (UWP) には、Windows 10 上で可能な限り最高のエクスペリエンスを実現するために使用できる機能が多数あります。 たとえば、Windows 10 バージョン 1903 以降では、XAML Islands という機能を使って、デスクトップ Win32 アプリで UWP XAML コントロールをホストできます。

このような UWP 機能のほとんどは、独自のペースでデスクトップ アプリに採用できるモジュラー コンポーネントとして利用できます。アプリケーション全体を書き換える必要がありません。 既存のデスクトップ アプリを拡張するには、Windows 10 と UWP のどの部分を採用するかを選びます。

詳しくは、「デスクトップ アプリの現代化」を参照してください。

C++/WinRT

必要に応じて、C++/WinRT を使うように開発用コンピューターを構成できます。 C++/WinRT は、完全に標準の最新 C++ 17 言語プロジェクションであり、これを使うと、C++ Win32 デスクトップ アプリケーションから Windows ランタイム API Windows ランタイム (WinRT) API を簡単に利用できるようになります。 C++/WinRT は、ヘッダー ファイルベース ライブラリとして実装されています。

C++/WinRT 用にプロジェクトを構成するには:

  • 新しいプロジェクトの場合は、C++/WinRT Visual Studio 拡張機能 (VSIX) をインストールして、その拡張機能に含まれているいずれかの C++/WinRT プロジェクト テンプレートを使用できます。
  • 既存の Windows デスクトップ アプリケーション プロジェクトの場合は、Microsoft.Windows.CppWinRT NuGet パッケージをプロジェクトにインストールできます。

これらのオプションの詳細については、こちらの記事を参照してください。

Windows 10 の Win32 API の新機能

Windows 10 で導入された新しい Win32 API については、新機能のページを参照してください。

Win32 の機能とテクノロジの概要

Win32 API は、コア ユーザー インターフェイス、ウィンドウ API、オーディオとグラフィックス、ネットワークなど、Windows 10 の多くの機能とテクノロジに対して存在します。 これらの API の使用に関するガイダンスとコード サンプルについては、機能とテクノロジのインデックスを参照してください