Utilizar un elemento PInvoke explícito en C++ (Atributo DllImport)
.NET Framework proporciona características explícitas para invocación de plataforma (PInvoke) con el atributo Dllimport para permitir que las aplicaciones administradas llamen a funciones no administradas empaquetadas en archivos DLL. La función PInvoke explícita se requiere en situaciones donde se empaquetan API no administradas como archivos DLL y el código fuente no está disponible. Al llamar a las funciones de Win32, por ejemplo, se requiere PInvoke. De lo contrario, utilice la función P/Invoke implícita; vea Utilizar la interoperabilidad de C++ (PInvoke implícito) para obtener más información.
PInvoke funciona utilizando DllImportAttribute. Este atributo, que adopta el nombre del archivo DLL como primer argumento, se coloca delante de una declaración de función para cada punto de entrada de DLL que se vaya a utilizar. La firma de la función debe corresponder al nombre de una función exportada por el archivo DLL (aunque ciertas conversiones de tipos se pueden efectuar implícitamente definiendo las declaraciones DllImport en cuanto a tipos administrados).
El resultado es un punto de entrada administrado para cada función de archivos DLL nativa que contiene el código de transición necesario (o thunk) y las conversiones de datos simples. Las funciones administradas pueden efectuar entonces llamadas en el archivo DLL a través de estos puntos de entrada. El código insertado en un módulo como resultado de PInvoke es administrado en su totalidad y se admite PInvoke para compilaciones con /clr, /clr:pure y /clr:safe. Para obtener más información, vea Código puro y comprobable (C++/CLI).
En esta sección
Cómo: Llamar a archivos DLL nativos desde el código administrado mediante PInvoke
Cómo: Calcular referencias de punteros a función mediante PInvoke
Cómo: Calcular referencias de punteros incrustados mediante PInvoke