Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Revista MSDN Magazine Edição 34 - Introdução ao Plataform Invoke
Artigo Originalmente Publicado na MSDN Magazine Edição 34

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;
·"
Este é um post disponível para assinantes MVP
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
João Talles Dantas Batista
João Talles Dantas Batista (jtdbf@hotmail.com) é tecnólogo em processamento de dados pela UNIFIEO, MCP em ASP.NET e SQL Server, líder da célula acadêmica na faculdade FIAP e consultor independente. Atualmente trabalha como analista/desenvolvedor no Submarino S/A utilizando o Visual Studio 2005 e o T...




