msdn34_capa.jpg

Clique aqui para ler todos os artigos desta edição

 

Introdução ao Plataform Invoke

João Talles Dantas Batista

 

O PInvoke é a parte do .NET Framewok que fornece mecanismos para a execução de código não gerenciado a partir de uma aplicação desenvolvida na plataforma .NET (código gerenciado). Mas o que isso significa exatamente?

Imagine que a sua empresa adote o .NET Framework como plataforma de desenvolvimento. Provavelmente, já existe uma séria de regras de negócios implementadas em componentes (DLLs) e para que você não reescreva todos esses componentes, você pode, através do PInvoke, utilizar as funções desses a partir de uma aplicação desenvolvida sobre a plataforma .NET.

O objetivo deste artigo é apresentar o PInvoke, demonstrar como utilizá-lo, citar algumas de suas limitações e problemas.

Introdução ao Plataform Invoke

Os passos efetuados pelo PInvoke para executar uma função contida em uma DLL são os seguintes:

·        Localizar e carregar a DLL que contém a rotina solicitada;

·        Localizar a função desejada;

·        Mapear os parâmetros do código gerenciado para não gerenciado;

·        Transferir o fluxo de execução para o código não gerenciado.

O código .NET que deve ser desenvolvido, para que esses passos sejam efetuados pelo PInvoke são os seguintes:

·        Adicionar uma referência para o namespace System.Runtime.InteropServices;

·        Importar a DLL que contém a função não gerenciada que você deseja executar utilizando o atributo [DLLImport]. Esse atributo encontra-se no namespace System.Runtime.InteropServices importado anteriormente;

·        Declarar um método extern e static com o mesmo nome da função contida na DLL, mas sem implementação;

·        Opcionalmente, sobrescrever o mapeamento de parâmetros do código não gerenciado para o código gerenciado.

Executando funções da API Win32

Vamos demonstrar o uso do PInvoke, utilizando algumas funções da API Win32. ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 79 /mês
Assinar agora