Compartilhar via


Usando PInvoke explícita em C++ (atributo DllImport)

A.NET Framework fornece recursos de invocação de plataforma (ou PInvoke) explícitos com o Dllimport atributo para permitir que os aplicativos gerenciados chamar funções não gerenciadas empacotadas dentro de DLLs. PInvoke explícita é necessária para situações em que os APIs não gerenciadas são empacotadas como DLLs e o código-fonte não está disponível. Por exemplo, chamar funções do Win32, requer PInvoke. Caso contrário, use p implícito {Invoke; consulte Usar a interoperabilidade de C++ (PInvoke implícito) para obter mais informações.

PInvoke funciona usando DllImportAttribute. Esse atributo, o que leva o nome da DLL como seu primeiro argumento, é colocado antes de uma declaração de função para cada ponto de entrada DLL que será usado. A assinatura da função deve corresponder ao nome de uma função exportada pela DLL (mas alguns conversão de tipo pode ser executada implicitamente, definindo a DllImport declarações em termos de tipos gerenciados.)

O resultado é um ponto de entrada gerenciado para cada função DLL nativa que contém o código de transição necessários (ou thunk) e conversões de dados simples. Podem chamar funções gerenciadas a dll através desses pontos de entrada. O código inserido em um módulo, como resultado de PInvoke é totalmente gerenciado e PInvoke explícita é suportado para /clr, /clr:pure, e /clr:safe compilações. For more information, see Código puro e verificável.

Nesta seção

Consulte também

Conceitos

Chamar funções nativas do código gerenciado