'System.Runtime.InteropServices.DllImportAttribute' はインスタンス メソッドに適用できません。

更新 : 2007 年 11 月

非共有のプロシージャが DllImportAttribute で宣言されています。

共通言語ランタイム (CLR) は、.NET Framework 外のアンマネージ DLL (Dynamic-Link Library) の中で定義されている置換プロシージャを指定しているときに、この属性と EntryPoint プロパティを認識します。DllImportAttribute が適用されているプロシージャがコードから呼び出されると、共通言語ランタイムは、そのプロシージャの代わりに指定されたアンマネージ プロシージャを呼び出します。

.NET Framework 外のアンマネージ プラットフォームは、.NET Framework と同じようには非共有プロシージャをサポートしないので、非共有プロシージャを使用してこれらのプラットフォームと相互運用することはできません。

Error ID: BC31529

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

  • プロシージャをクラスまたは構造体の各インスタンスに個別に適用する必要がない場合は、そのプロシージャを Shared として宣言します。

  • プロシージャを Shared にできない場合は、そのプロシージャの宣言から DllImportAttribute を削除します。

参照

参照

DllImportAttribute

Shared (Visual Basic)