方法: /clr を使用して MFC および ATL コードをコンパイルする
このトピックでは、共通言語ランタイムをターゲットに既存の MFC および ATL プログラムをコンパイルする方法について説明します。
/clr を使用して MFC 実行可能ファイルまたは標準 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 実行可能ファイルまたは標準 MFC DLL をコンパイルするには」の手順に従います。
[構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[プリコンパイル済みヘッダー] を選択します。 [プリコンパイル済みヘッダーの作成/使用] を [プリコンパイル済みヘッダーを使用しない] に設定します。
あるいは、ソリューション エクスプローラーで、Stdafx.cpp を右クリックしてから、[プロパティ] をクリックします。 [構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[全般] を選択します。 [Compile with Common Language Runtime support]\(共通言語ランタイムのサポートを使用してコンパイルする\) を [共通言語ランタイム サポートを使用しない] に設定します。
DllMain とそれが呼び出すすべてを含むファイルの場合は、ソリューション エクスプローラーでファイルを右クリックしてから、[プロパティ] をクリックします。 [構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[全般] を選択します。 右側のウィンドウの [プロジェクトの既定値] の [Compile with Common Language Runtime support]\(共通言語ランタイムのサポートを使用してコンパイルする\) を [共通言語ランタイム サポートを使用しない] に設定します。
/clr を使用して ATL 実行可能ファイルをコンパイルするには
ソリューション エクスプローラーでプロジェクトを右クリックし、 [プロパティ] をクリックします。
[プロジェクトのプロパティ] ダイアログ ボックスで、[構成プロパティ] の隣のノードを展開し、[全般] を選択します。 右側のウィンドウの [プロジェクトの既定値] の [共通言語ランタイム サポート] を [共通言語ランタイム サポート (/clr)] に設定します。
[構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[全般] を選択します。 [デバッグ情報の形式] を [プログラム データベース /Zi] に設定してください (/ZI ではありません)。
[コード生成] ノードを選択します。 [最小リビルドを有効にする] を [いいえ (/Gm-)] に設定します。 また、[基本ランタイム チェック] も [既定値] に設定します。
[構成プロパティ] で、[C/C++]、[コード生成] を順に選択します。 [ランタイム ライブラリ] が [マルチスレッド デバッグ DLL (/MDd)] または [マルチスレッド DLL (/MD)] に設定されている必要があります。
すべての MIDL 生成ファイル (C ファイル) の場合は、ソリューション エクスプローラーでファイルを右クリックしてから、[プロパティ] をクリックします。 [構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[全般] を選択します。 [Compile with Common Language Runtime support]\(共通言語ランタイムのサポートを使用してコンパイルする\) を [共通言語ランタイム サポートを使用しない] に設定します。
/clr を使用して ATL DLL をコンパイルするには
「/clr を使用して ATL 実行可能ファイルをコンパイルするには」セクションの手順に従います。
[構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[プリコンパイル済みヘッダー] を選択します。 [プリコンパイル済みヘッダーの作成/使用] を [プリコンパイル済みヘッダーを使用しない] に設定します。
あるいは、ソリューション エクスプローラーで、Stdafx.cpp を右クリックしてから、[プロパティ] をクリックします。 [構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[全般] を選択します。 [Compile with Common Language Runtime support]\(共通言語ランタイムのサポートを使用してコンパイルする\) を [共通言語ランタイム サポートを使用しない] に設定します。
DllMain とそれが呼び出すすべてを含むファイルの場合は、ソリューション エクスプローラーでファイルを右クリックしてから、[プロパティ] をクリックします。 [構成プロパティ] の下で、[C/C++] の隣のノードを展開し、[全般] を選択します。 右側のウィンドウの [プロジェクトの既定値] の [Compile with Common Language Runtime support]\(共通言語ランタイムのサポートを使用してコンパイルする\) を [共通言語ランタイム サポートを使用しない] に設定します。