Share via


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

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

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

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

エラー ID: BC31529

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

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

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

関連項目