Lar Desenvolvimento O que é o atributo dllimport? - o que é techopedia

O que é o atributo dllimport? - o que é techopedia

Índice:

Anonim

Definição - O que significa DllImport Attribute?

Atributo DllImport é uma marca declarativa usada em C # para marcar um método de classe como sendo definido em uma biblioteca de vínculo dinâmico externo (DLL) em vez de em qualquer assembly .NET.


O atributo DllImport é usado no tempo de execução para chamar uma função exportada em uma DLL externa implementada com código não gerenciado que é executado fora do controle do CLR (Common Language Runtime). Também é usado para especificar outras informações necessárias ao chamar a função, como convenção de chamada, tipo de conversão de parâmetros passados ​​entre código gerenciado e não gerenciado, etc. Portanto, é usado para interoperar com o código em componentes herdados e não gerenciados que residem no Windows DLLs e está escrito em C ou C ++.


DllImport é útil em situações em que a funcionalidade de um aplicativo gerenciado, cujo código é executado pelo CLR, pode ser estendida apenas acessando e reutilizando a funcionalidade da API (interface de programação de aplicativos) Win32 e outros códigos não gerenciados definidos pelo usuário que são implementados na DLL. Isso pode economizar esforço de desenvolvimento e fazer uso do código robusto e bem testado existente sem reinventar a roda em um aplicativo gerenciado. Geralmente, é necessário ao usar DLLs que não podem ser reescritas, mas que podem ser modificadas.

Techopedia explica o atributo DllImport

O atributo DllImport é uma declaração de declaração para a função exportada a ser chamada do aplicativo gerenciado. Ele não pode ser usado para uma função de membro, que requer uma instância da classe. É especificado em tempo de design entre colchetes antes da declaração do método ao qual é aplicado. É necessário usar a string “extern” antes da declaração da função.


Por exemplo, o atributo DllImport pode ser usado no aplicativo Windows Forms, que é um aplicativo gerenciado para invocar um método de um componente de modelo de objeto de componente (cujo código não é gerenciado) para executar alguns cálculos.


Ele foi projetado para importar as DLLs tradicionais que exportam suas funções usando o mecanismo de exportação DLL do Windows original. Não se destina ao uso de código no assembly gerenciado (como DLL), que pode ser referenciado diretamente no projeto do aplicativo gerenciado.


O atributo DllImport usa o InteropServices do CLR, que executa a chamada do código gerenciado para o código não gerenciado. Ele também informa o compilador sobre a localização da implementação da função usada. Quando a função de wrapper não gerenciado com esse atributo no código gerenciado é chamada, o CLR localiza e carrega a DLL necessária. Ele empacota (converte os parâmetros conforme a especificação) e retorna o código não gerenciado após a execução, juntamente com a conversão adequada dos parâmetros.


Ao usar o atributo DllImport, é necessário tomar cuidado para usar o nome correto da DLL e a função exportada, pois erros de digitação podem ocorrer em locais onde não podem ser facilmente detectados.

O que é o atributo dllimport? - o que é techopedia