Partager via


Utilisation d’un PInvoke explicite en C++ (attribut DllImport)

.NET Framework fournit des fonctionnalités explicites d’appel de plateforme (ou PInvoke) avec l’attribut Dllimport pour permettre aux applications managées d’appeler des fonctions non managées empaquetées dans des DLL. PInvoke explicite est requis pour les situations où les API non managées sont empaquetées en tant que DLL et que le code source n’est pas disponible. L’appel de fonctions Win32, par exemple, nécessite PInvoke. Sinon, utilisez p{Invoke implicite ; consultez Utilisation de l’interopérabilité C++ (PInvoke implicite) pour plus d’informations.

PInvoke fonctionne à l’aide DllImportAttributede . Cet attribut, qui prend le nom de la DLL comme premier argument, est placé avant une déclaration de fonction pour chaque point d’entrée DLL qui sera utilisé. La signature de la fonction doit correspondre au nom d’une fonction exportée par la DLL (mais une conversion de type peut être effectuée implicitement en définissant les DllImport déclarations en termes de types managés.)

Le résultat est un point d’entrée managé pour chaque fonction DLL native qui contient le code de transition nécessaire (ou thunk) et les conversions de données simples. Les fonctions managées peuvent ensuite appeler la DLL via ces points d’entrée. Le code inséré dans un module à la suite de PInvoke est entièrement géré.

Dans cette section

Voir aussi

Appel à des fonctions natives à partir de code managé