'System.Runtime.InteropServices.DllImportAttribute' は、ジェネリックまたはジェネリック型に含まれるメソッドには適用できません。

更新 : 2007 年 11 月

プロシージャ宣言に DllImportAttribute が指定されていますが、このプロシージャはジェネリック プロシージャであるか、ジェネリックなクラスまたは構造体に含まれています。

共通言語ランタイム (CLR: Common Language Runtime) は、この属性と属性の EntryPoint プロパティを見つけると、.NET Framework の外部のアンマネージ ダイナミック リンク ライブラリ (DLL) に定義された置換プロシージャが指定されたと認識します。DllImportAttribute が適用されたプロシージャが呼び出されると、共通言語ランタイムは指定されたアンマネージ プロシージャを代わりに呼び出します。

.NET Framework 外のアンマネージ プラットフォームはジェネリック型を認識しないため、ジェネリック型を使用して相互運用できません。

Error ID: BC31526

このエラーを解決するには

  • プロシージャとそのコンテナのどちらもジェネリックにする必要がない場合は、ジェネリックを指定しないように Of 句を削除します。

  • プロシージャまたはそのコンテナをジェネリックにする必要がある場合は、このプロシージャの宣言から DllImportAttribute を削除します。

参照

概念

Visual Basic におけるジェネリック型

参照

DllImportAttribute