次の方法で共有


方法: 確認可能な C++ プロジェクトを作成する (C++/CLI)

Visual C++ アプリケーションウィザードでは、確認可能なプロジェクトは作成されません。

重要

確認可能なプロジェクトの /clr:pure および /clr:safe の作成は、Visual Studio 2015 で非推奨になり、Visual Studio 2017 ではサポートされていません。 確認可能なコードが必要な場合は、コードを C# に変換することをお勧めします。

ただし、/clr:pure/clr:safe をサポートする古いバージョンの Microsoft C++ コンパイラ ツールセットを使っている場合は、プロジェクトを確認可能に変換できます。 このトピックでは、プロジェクトのプロパティを設定し、プロジェクトのソース ファイルを変更して、Visual Studio C++ プロジェクトを変換し、確認可能なアプリケーションを生成する方法について説明します。

コンパイラとリンカーの設定

既定の .NET プロジェクトでは、/clr コンパイラ フラグが使われ、x86 ハードウェアをターゲットにするようにリンカーが構成されます。 確認可能なコードの場合は、/clr:safe フラグを使う必要があり、ネイティブ マシン命令ではなく MSIL を生成するようにリンカーに指示する必要があります。

コンパイラとリンカーの設定を変更するには

  1. プロジェクトのプロパティ ページを表示します。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。

  2. [全般] ページの [構成プロパティ] ノードで、[共通言語ランタイム サポート] プロパティを [安全な MSIL 共通言語ランタイム サポート (/clr:safe)] に設定します。

  3. [詳細設定] ページの [リンカー] ノードで、[CLR イメージ タイプ] プロパティを [安全 IL イメージの強制 (/CLRIMAGETYPE:SAFE)] に設定します。

ネイティブ データ型の削除

ネイティブ データ型は、実際には使われていない場合でも確認できないため、ネイティブ型を含むすべてのヘッダー ファイルを削除する必要があります。

次の手順は、Windows フォーム アプリケーション (.NET) とコンソール アプリケーション (.NET) のプロジェクトに適用されます。

ネイティブ データ型への参照を削除するには

  1. Stdafx.h ファイル内のすべてをコメントアウトします。

エントリ ポイントの構成

確認可能なアプリケーションでは C ランタイム ライブラリ (CRT) を使用できないため、標準のエントリ ポイントとして main 関数を呼び出すために CRT に依存することはできません。 これは、最初に呼び出される関数の名前を、リンカーに明示的に指定する必要があることを意味します。 (この場合、CRT 以外のエントリ ポイントであることを示すために main() または _tmain() の代わりに Main() が使用されますが、エントリ ポイントを明示的に指定する必要があるため、この名前は任意です。)

次の手順は、コンソール アプリケーション (.NET) プロジェクトに適用されます。

エントリ ポイントを構成するには

  1. プロジェクトのメイン .cpp ファイルで _tmain() を Main() に変更します。

  2. プロジェクトのプロパティ ページを表示します。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。

  3. [詳細設定] ページの [リンカー] ノードで、Main プロパティの値として「」と入力します。

関連項目