DLL (C++/CX)

Visual Studio を使って、ユニバーサル Windows プラットフォーム (UWP) アプリで使用できる標準の Win32 DLL または Windows ランタイム コンポーネント DLL のいずれかを作成することができます。 Visual Studio 2012 より前のバージョンの Visual Studio または Microsoft C++ コンパイラを使って作成された標準 DLL は、UWP アプリで正しく読み込めず、Microsoft Store のアプリ検証テストに合格しない可能性があります。

Windows ランタイム コンポーネント DLL

ほとんどの場合、UWP アプリで使う DLL を作成するときは、Windows ランタイム コンポーネントとしてその名前のプロジェクト テンプレートを使って作成します。 Windows ランタイム コンポーネント プロジェクトは、パブリック型または非公開型の Windows ランタイムである DLL に対して作成できます。 Windows ランタイム コンポーネントは、Windows ランタイムと互換性のある言語で記述したアプリからアクセスすることができます。 Windows ランタイム コンポーネント プロジェクトの既定のコンパイラ設定では、/ZW スイッチを使用します。 .winmd ファイルには、ルート名前空間と同じ名前が必要です。 たとえば、A.B.C.MyClass という名前のクラスは、A.winmd または A.B.winmd または A.B.C.winmd という名前のメタデータ ファイルで定義されている場合のみインスタンス化できます。 DLL の名前が .winmd ファイル名と一致する必要はありません。

詳細については、「 C++ での Windows ランタイム コンポーネントの作成」をご参照ください。

プロジェクトでサードパーティの Windows ランタイム コンポーネント バイナリを参照するには

  1. DLL を使用するプロジェクトのショートカット メニューを開き、 [プロパティ]をクリックします。 [共通プロパティ] ページで、 [新しい参照の追加] をクリックします。

  2. Windows ランタイム コンポーネントは、1 つの DLL ファイルと、メタデータを格納した 1 つの .winmd ファイルで構成されます。 通常、これらのファイルは同じフォルダーにあります。 [参照の追加] ダイアログ ボックスの左ペインで、 [参照] をクリックし、DLL とその .winmd ファイルの場所に移動します。 詳細については、「拡張 SDK」を参照してください。

標準 DLL

パブリック Windows ランタイム型を使用または生成せず、UWP アプリから使用しない C++ コード用の標準 DLL を作成できます。 既存の ダイナミック リンク ライブラリ (DLL) を移行して Visual Studio のこのバージョンでコンパイルするが、コードは Windows ランタイム コンポーネント プロジェクトに変換しない場合は、DLL プロジェクトの種類を使用します。 次の手順を使用する場合、DLL は .appx パッケージのアプリ実行可能ファイルと一緒に配置されます。

Visual Studio で、標準 DLL を作成するには

  1. メニュー バーの [ファイル][新規作成][プロジェクト] を選び、[ダイナミックリンク ライブラリ (DLL)] テンプレートを選びます。

  2. プロジェクトの名前を入力し、 [OK] をクリックします。

  3. コードを追加します。 必ず、エクスポートする対象の関数 ( __declspec(dllexport) など) の __declspec(dllexport) Add(int I, in j);を使用してください。

  4. #include winapifamily.h を追加して UWP アプリ用 Windows SDK のヘッダー ファイルを含め、マクロ WINAPI_FAMILY=WINAPI_PARTITION_APP を設定します。

同じソリューションから標準 DLL プロジェクトを参照するには

  1. DLL を使用するプロジェクトのショートカット メニューを開き、 [プロパティ]をクリックします。 [共通プロパティ] ページで、 [新しい参照の追加] をクリックします。

  2. 左ペインで [ソリューション]をクリックし、右ペインの対応するチェック ボックスをオンにします。

  3. ソース コード ファイルで、必要に応じて DLL のヘッダー ファイルの #include ステートメントを追加します。

標準 DLL バイナリを参照するには

  1. DLL ファイル、.lib ファイル、ヘッダー ファイルをコピーし、既知の場所 (現在のプロジェクト フォルダーなど) に貼り付けます。

  2. DLL を使用するプロジェクトのショートカット メニューを開き、 [プロパティ]をクリックします。 [構成プロパティ][リンカー]の順にクリックし、 [入力] ページで、依存関係として .lib ファイルを追加します。

  3. ソース コード ファイルで、必要に応じて DLL のヘッダー ファイルの #include ステートメントを追加します。

UWP アプリの互換性のために既存の Win32 DLL を移行するには

  1. DLL (ユニバーサル Windows) 型のプロジェクトを作成し、既存のソース コードを追加します。

  2. #include winapifamily.h を追加して UWP アプリ用 Windows SDK のヘッダー ファイルを含め、マクロ WINAPI_FAMILY=WINAPI_PARTITION_APP を設定します。

  3. ソース コード ファイルで、必要に応じて DLL のヘッダー ファイルの #include ステートメントを追加します。