次の方法で共有


/CLRUNMANAGEDCODECHECK (SupressUnmanagedCodeSecurityAttribute の追加)

更新 : 2007 年 11 月

/CLRUNMANAGEDCODECHECK は、マネージ コードからネイティブ DLL への、リンカによって生成された PInvoke 呼び出しに対して、SuppressUnmanagedCodeSecurityAttribute を適用するかどうかを指定します。

/CLRUNMANAGEDCODECHECK[:NO]

解説

既定では、リンカによって生成された PInvoke 呼び出しに対して、SuppressUnmanagedCodeSecurityAttribute が適用されます。/CLRUNMANAGEDCODECHECK を有効にすると、SuppressUnmanagedCodeSecurityAttribute が適用されません。

リンカは、/clr または /clr:pure を指定してコンパイルされたオブジェクトだけに、この属性を適用します。/clr:safe を指定してコンパイルされたオブジェクトでは、PInvoke 呼び出しは生成されません。詳細については、「/clr (共通言語ランタイムのコンパイル)」を参照してください。

PInvoke 呼び出しは、リンカが、マネージ呼び出し元からの参照に適合するマネージ シンボルは検出できないが、その参照に適合するネイティブ シンボルは検出できる場合に、リンカによって生成されます。PInvoke の詳細については、「マネージ コードからのネイティブ関数の呼び出し」を参照してください。

コードで AllowPartiallyTrustedCallersAttribute を使用する場合は、明示的に /CLRUNMANAGEDCODECHECK を設定する必要があります。イメージに SuppressUnmanagedCodeSecurity 属性および AllowPartiallyTrustedCallers 属性の両方が含まれる場合、セキュリティ上の脆弱性が生じる可能性があります。

SuppressUnmanagedCodeSecurityAttribute を使用する意味の詳細については、「セキュリティの最適化」を参照してください。

Visual Studio 開発環境でこのリンカ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。

  2. [構成プロパティ] ノードを展開します。

  3. [リンカ] ノードを展開します。

  4. [詳細] プロパティ ページをクリックします。

  5. [CLR アンマネージ コード チェック] プロパティを変更します。

このリンカをコードから設定するには

参照

参照

リンカ オプションの設定

リンカ オプション