'System.Runtime.InteropServices.DllImportAttribute' não pode ser aplicado a métodos de instância

Um procedimento não partilhado é declarado com o DllImportAttribute.

O ambiente de execução da linguagem comum (CLR) reconhece este atributo e a sua EntryPoint propriedade como designando um procedimento de substituição definido numa biblioteca de ligação dinâmica (DLL) não gerida (unmanaged) exterior ao .NET Framework. Quando o código chama o procedimento ao qual o DllImportAttribute é aplicado, o runtime da linguagem comum chama o procedimento não gerido designado em vez disso.

Como plataformas não geridas fora do .NET Framework não suportam procedimentos não partilhados da mesma forma que o .NET Framework, não pode interoperar com elas usando procedimentos não partilhados.

ID de erro: BC31529

Para corrigir este erro

  • Se o procedimento não precisar de se aplicar individualmente a cada instância da sua classe ou estrutura, então declare-o como Shared.

  • Se o procedimento não puder ser Shared, então remova o DllImportAttribute da declaração deste procedimento.

Consulte também