方法: /clr を使用して MFC および ATL コードをコンパイルする
ここでは、共通言語ランタイムをターゲットに既存の MFC および ATL プログラムをコンパイルする方法について説明します。
/clr を使用して MFC 実行可能ファイルまたは標準 DLL をコンパイルするには
ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] をクリックします。
[プロジェクトのプロパティ] ダイアログ ボックスで、[構成プロパティ] の横のノードを展開し、[全般] を選択します。右のペインで、[プロジェクトの既定値] の [共通言語ランタイム サポート] を [共通言語ランタイム サポート (/clr)] に設定します。
同じペインで、[MFC の使用法] が [共有 DLL で MFC を使う] に設定されていることを確認します。
[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。[デバッグ情報の形式] が [プログラム データベース (/Zi)] に設定されていること (/ZI ではないこと) を確認します。
[コード生成] ノードをクリックします。[簡易リビルドを行う] を [いいえ (/Gm-)] に設定します。また、[基本ランタイム チェック] も [既定値] に設定します。
[構成プロパティ] の下で、[C/C++] を選択し、次に [コード生成] を選択します。[ランタイム ライブラリ] が [マルチスレッド デバッグ DLL (/MDd)] または [マルチスレッド DLL (/MD)] に設定されていることを確認します。
Stdafx.h に次の行を追加します。
#using <System.Windows.Forms.dll>
/clr を使用して MFC 拡張 DLL をコンパイルするには
「/clr を使用して MFC 実行可能ファイルまたは標準 DLL をコンパイルするには」で説明した手順を実行します。
[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[プリコンパイル済みヘッダー] を選択します。[プリコンパイル済みヘッダーの作成/使用] を [プリコンパイル済みヘッダーを使用しない] に設定します。
または、ソリューション エクスプローラーで、Stdafx.cpp を右クリックし、[プロパティ] をクリックします。[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。[共通言語ランタイム サポートでコンパイル] を [共通言語ランタイム サポートを使用しない] に設定します。
DllMain および DllMain の呼び出し先が含まれるファイルについて、ソリューション エクスプローラーでそのファイルを右クリックし、[プロパティ] をクリックします。[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。右のペインで、[プロジェクトの既定値] の [共通言語ランタイム サポートでコンパイル] を [共通言語ランタイム サポートを使用しない] に設定します。
/clr を使用して ATL 実行可能ファイルをコンパイルするには
ソリューション エクスプローラーで、プロジェクトを右クリックし、[プロパティ] をクリックします。
[プロジェクトのプロパティ] ダイアログ ボックスで、[構成プロパティ] の横のノードを展開し、[全般] を選択します。右のペインで、[プロジェクトの既定値] の [共通言語ランタイム サポート] を [共通言語ランタイム サポート (/clr)] に設定します。
[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。[デバッグ情報の形式] が [プログラム データベース (/Zi)] に設定されていること (/ZI ではないこと) を確認します。
[コード生成] ノードをクリックします。[簡易リビルドを行う] を [いいえ (/Gm-)] に設定します。また、[基本ランタイム チェック] も [既定値] に設定します。
[構成プロパティ] の下で、[C/C++] を選択し、次に [コード生成] を選択します。[ランタイム ライブラリ] が [マルチスレッド デバッグ DLL (/MDd)] または [マルチスレッド DLL (/MD)] に設定されていることを確認します。
MIDL によって生成された各ファイル (C ファイル) について、ソリューション エクスプローラーでそのファイルを右クリックし、[プロパティ] をクリックします。[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。[共通言語ランタイム サポートでコンパイル] を [共通言語ランタイム サポートを使用しない] に設定します。
/clr を使用して ATL DLL をコンパイルするには
「/clr を使用して ATL 実行可能ファイルをコンパイルするには」で説明した手順を実行します。
[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[プリコンパイル済みヘッダー] を選択します。[プリコンパイル済みヘッダーの作成/使用] を [プリコンパイル済みヘッダーを使用しない] に設定します。
または、ソリューション エクスプローラーで、Stdafx.cpp を右クリックし、[プロパティ] をクリックします。[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。[共通言語ランタイム サポートでコンパイル] を [共通言語ランタイム サポートを使用しない] に設定します。
DllMain および DllMain の呼び出し先が含まれるファイルについて、ソリューション エクスプローラーでそのファイルを右クリックし、[プロパティ] をクリックします。[構成プロパティ] の下で、[C/C++] の横のノードを展開し、[全般] を選択します。右のペインで、[プロジェクトの既定値] の [共通言語ランタイム サポートでコンパイル] を [共通言語ランタイム サポートを使用しない] に設定します。