Usando PInvoke Explicit no C++ (atributo DllImport)
O.NET Framework fornece recursos de invocação de plataforma (ou PInvoke) explícitos com o Dllimport atributo para permitir que aplicativos gerenciados chamar funções não gerenciadas empacotadas dentro de DLLs.PInvoke explícita é necessária para situações onde 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ícita {Invoke; consulte Usando interoperabilidade C++ (PInvoke implícita) 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á usada.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 nativo que contém o código necessário transição (ou conversão) e conversões de dados simples.Funções gerenciadas podem então chamar a dll por esses 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.Para mais informações, consulte Código puro e verificável (C + + / CLI).