Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O .NET Framework fornece recursos explícitos de Invocação de Plataforma (ou PInvoke) com o Dllimport atributo para permitir que aplicativos gerenciados chamem funções não gerenciadas empacotadas dentro de DLLs. O PInvoke explícito é necessário para situações em que APIs não gerenciadas são empacotadas como DLLs e o código-fonte não está disponível. Chamar funções Win32, por exemplo, requer PInvoke. Caso contrário, use P{Invoke implícito; consulte Uso de C++ Interop (PInvoke implícito) para obter mais informações.
PInvoke funciona usando DllImportAttribute. Esse atributo, que usa o nome da DLL como seu primeiro argumento, é colocado antes de uma declaração de função para cada ponto de entrada da DLL que será usado. A assinatura da função deve corresponder ao nome de uma função exportada pela DLL (mas alguma conversão de tipo pode ser executada implicitamente definindo as 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ário (ou thunk) e conversões de dados simples. As funções gerenciadas podem então chamar a DLL por meio desses pontos de entrada. O código inserido em um módulo como resultado do PInvoke é totalmente gerenciado.