DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou 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

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;

·"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
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...
O que você achou deste post?

    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Ronaldo Assis
Paguei R$ 3,50 mas não serviu pra nada
[há +1 ano] - Responder

 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03