方法: 確認可能な C++ プロジェクトを作成する (C++/CLI)
Visual C++ アプリケーション ウィザードでは、検証可能なプロジェクトは作成されませんが、プロジェクトを検証可能になるように変換できます。このトピックでは、プロジェクトのプロパティを設定し、Visual C++ プロジェクトを変換するようにプロジェクト ソース ファイルを変更して検証可能なアプリケーションを作成する方法について説明します。
コンパイラとリンカーの設定
既定では、.NET プロジェクトでは、/clr コンパイラ フラグを使用して、x86 ハードウェアを対象とするようにリンカーを設定します。検証可能なコードでは、/clr:safe フラグを使用する必要があります。また、ネイティブなマシン語命令ではなく MSIL を生成するようにリンカーに指示する必要もあります。
コンパイラとリンカーの設定を変更するには
プロジェクトのプロパティ ページを表示します。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[構成プロパティ] ノードの [全般] ページで、[共通言語ランタイム サポート] プロパティを [安全な MSIL 共通言語ランタイム サポート (/clr:safe)] に設定します。
[リンカー] ノードの [詳細] ページで、[CLR イメージ タイプ] プロパティを [安全 IL イメージの強制 (/CLRIMAGETYPE:SAFE)] に設定します。
ネイティブ データ型の削除
ネイティブ データ型は検証可能ではないので、実際に使用されていない場合でも、ネイティブな型を含むすべてのヘッダー ファイルを削除する必要があります。
[!メモ]
次の手順は、Windows フォーム アプリケーション (.NET) プロジェクトおよびコンソール アプリケーション (.NET) プロジェクトに該当します。
ネイティブ データ型への参照を削除するには
- Stdafx.h ファイルの内容をすべてコメント アウトします。
エントリ ポイントの設定
検証可能なアプリケーションでは C ランタイム ライブラリ (CRT) を使用できないため、これらのアプリケーションは、標準的なエントリ ポイントとして main 関数を呼び出す場合には、CRT に依存できません。つまり、最初にリンカーに呼び出す関数の名前を明示的に指定する必要があります。この場合は、main() や _tmain() ではなく Main() を使用して、CRT 以外のエントリ ポイントを示しますが、エントリ ポイントは明示的に指定する必要があるため、この名前は任意です。
[!メモ]
次の手順は、コンソール アプリケーション (.NET) プロジェクトに該当します。
エントリ ポイントを設定するには
プロジェクトのメインとなる .cpp ファイルで _tmain() を Main() に変更します。
プロジェクトのプロパティ ページを表示します。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[リンカー] ノードの [詳細] ページで、[Entry Point] に、プロパティ値として「Main」と入力します。