C# · Avançado · Inglês · Técnico
P/Invoke
Mecanismo que chama funções nativas de bibliotecas não gerenciadas (DLL ou .so) a partir de C#, declarando a assinatura com DllImport ou LibraryImport e cuidando do marshalling dos tipos.
Onde usar
Aparece ao integrar APIs do sistema operacional ou bibliotecas em C, como a kernel32 do Windows. Um tipo ou convenção de chamada errados causam crashes sutis, e o LibraryImport gera o marshalling em compilação, exigindo AllowUnsafeBlocks no projeto.
Em código
using System.Runtime.InteropServices;
static partial class Nativo
{
[LibraryImport("kernel32.dll")]
public static partial uint GetTickCount();
}Exemplos
We call the native library through P/Invoke.
Chamamos a biblioteca nativa por P/Invoke.
Check the P/Invoke signature, the struct layout is wrong.
Confira a assinatura do P/Invoke, o layout da struct está errado.
Cuidado
Não confunda com COM interop ou C++/CLI: P/Invoke serve para funções planas exportadas por bibliotecas nativas.
Sinônimos
Platform Invoke
Origem
Abreviação de Platform Invoke.