Partilhar via


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

O .NET Framework fornece recursos explícitos de invocação de plataforma (ou o PInvoke) com o atributo de Dllimport para permitir que os aplicativos gerenciados chamar funções não gerenciados DLL internos empacotados. PInvoke explícito é necessário em situações em que as APIs não gerenciados são empacotados porque as dlls e o código-fonte não estão disponíveis. A chamada do Win32 funciona, por exemplo, requer PInvoke. Se não, use implícito invocar; {P consulte Usando interop C++ (PInvoke implícito) para obter mais informações.

Trabalho de PInvoke usando DllImportAttribute. Esse atributo, que usa o nome da DLL como seu primeiro argumento, será 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 por qualquer conversão de tipos pode ser executado definindo implicitamente as declarações de DllImport em termos de tipos gerenciados.)

O resultado é um ponto de entrada gerenciado para cada função de DLL nativa de que contém o código necessário de transição (ou o thunk) e conversões de dados simples. As funções gerenciados podem chamar na DLL esses pontos de entrada. O código inserido em um módulo como o resultado de PInvoke é totalmente gerenciado e PInvoke explícito tem suporte para /clr, /clr:pure, e compilações de /clr:safe . Para obter mais informações, consulte Código puro e verificável (C++/CLI).

Nesta seção

Consulte também

Conceitos

Chamando funções nativas a partir do código gerenciado