プロジェクトの作成 (ATL チュートリアル、パート 1)
このチュートリアルでは、多角形を表示する ActiveX オブジェクトを作成する非属性 ATL プロジェクトについて順を追って説明します。 このオブジェクトには、ユーザーが多角形を構成する辺の数を変更できるようにするオプションと、表示を更新するためのコードが含まれています。
Note
このチュートリアルでは、Polygon サンプルと同じソース コードを作成します。 ソース コードの手入力を避けたい場合は、Polygon サンプルの要約のページからソース コードをダウンロードできます。 その後、Polygon のソース コードを参照しながらチュートリアルを進めることや、自分のプロジェクトのエラー チェックに使うことができます。 コンパイルするには、pch.h (Visual Studio 2017 以前の場合は stdafx.h) を開いて、次のように置き換えます。
#ifndef WINVER
#define WINVER 0x0400
#endif
with
#ifndef WINVER
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif
regsvr32
が正しく終了していないと、コンパイラから問題が報告されますが、コントロールの DLL がビルドされ、使用できるようになるはずです。
ATL プロジェクト ウィザードを使って最初の ATL プロジェクトを作成するには
Visual Studio 2017 以前の場合: [ファイル] > [新規作成] > [プロジェクト]。 [Visual C++] タブを開き、[MFC/ATL] を選びます。 [ATL プロジェクト] を選びます。
Visual Studio 2019 の場合: [ファイル]>[新規作成]>[プロジェクト] を選び、検索ボックスに「atl」と入力し、[ATL プロジェクト] を選びます。
プロジェクト名として「Polygon」と入力します。
通常、ソース コードの場所は、既定で \Users\<username>\source\repos であり、新しいフォルダーが自動的に作成されます。
Visual Studio 2019 の場合は、既定値のままにして [OK] をクリックします。 Visual Studio 2017 の場合は、[OK] をクリックし、[ATL プロジェクト] ウィザードを開きます。 [アプリケーション設定] をクリックし、使用できるオプションを確認します。 このプロジェクトではコントロールを作成しますが、コントロールはインプロセス サーバーにする必要があるので、[アプリケーションの種類] は DLL のままにしておきます。 OK をクリックします。
Visual Studio によって、いくつかのファイルが生成され、プロジェクトが作成されます。 ソリューション エクスプローラーでこれらのファイルを表示するには、Polygon
オブジェクトを展開します。 ファイルは次のとおりです。
ファイル | 説明 |
---|---|
Polygon.cpp | DllMain 、DllCanUnloadNow 、DllGetClassObject 、DllRegisterServer 、DllUnregisterServer の実装が含まれています。 また、プロジェクト内の ATL オブジェクトの一覧であるオブジェクト マップも含まれています。 初期状態では、これは空白です。 |
Polygon.def | このモジュール定義ファイルは、DLL に必要なエクスポートに関する情報をリンカーに提供するものです。 |
Polygon.idl | インターフェイス定義言語ファイル。オブジェクトに固有のインターフェイスを記述するために使います。 |
Polygon.rgs | このレジストリ スクリプトには、プログラムの DLL を登録するための情報が含まれています。 |
Polygon.rc | リソース ファイル。初期状態ではバージョン情報とプロジェクト名を含む文字列が含まれています。 |
Resource.h | リソース ファイルのヘッダー ファイルです。 |
Polygonps.def | このモジュール定義ファイルは、プロキシに必要なエクスポートに関する情報と、アパートメント間の呼び出しをサポートするスタブ コードをリンカーに提供するものです。 |
stdafx.cpp | stdafx.h を #include するファイル。 |
stdafx.h | ATL ヘッダー ファイルを #include し、プリコンパイルするファイル。 |
ファイル | 説明 |
---|---|
Polygon.cpp | DllMain 、DllCanUnloadNow 、DllGetClassObject 、DllRegisterServer 、DllUnregisterServer の実装が含まれています。 また、プロジェクト内の ATL オブジェクトの一覧であるオブジェクト マップも含まれています。 初期状態では、これは空白です。 |
Polygon.def | このモジュール定義ファイルは、DLL に必要なエクスポートに関する情報をリンカーに提供するものです。 |
Polygon.idl | インターフェイス定義言語ファイル。オブジェクトに固有のインターフェイスを記述するために使います。 |
Polygon.rgs | このレジストリ スクリプトには、プログラムの DLL を登録するための情報が含まれています。 |
Polygon.rc | リソース ファイル。初期状態ではバージョン情報とプロジェクト名を含む文字列が含まれています。 |
Resource.h | リソース ファイルのヘッダー ファイルです。 |
Polygonps.def | このモジュール定義ファイルは、プロキシに必要なエクスポートに関する情報と、アパートメント間の呼び出しをサポートするスタブ コードをリンカーに提供するものです。 |
pch.cpp | pch.h を #include するファイル。 |
pch.h | ATL ヘッダー ファイルを #include し、プリコンパイルするファイル。 |
ソリューション エクスプローラーで、
Polygon
プロジェクトを右クリックします。ショートカット メニューの [プロパティ] をクリックします。
[リンカー] をクリックします。 [Per-UserRedirection] オプションを [はい] に変更します。
OK をクリックします。
次の手順では、プロジェクトにコントロールを追加します。