次の方法で共有


/CLRUNMANAGEDCODECHECK (SupressUnmanagedCodeSecurityAttribute の追加)

/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 アンマネージ コード チェック] プロパティを変更します。

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

参照

参照

リンカー オプションの設定

リンカー オプション