Marshaling de données à l'aide de l'appel de code managé
Pour appeler des fonctions exportées à partir d'une bibliothèque non managée, une application .NET Framework a besoin d'un prototype de fonction dans du code managé qui représente la fonction non managée. Pour créer un prototype qui permette l'appel de code non managé afin de marshaler des données correctement, vous devez procéder comme suit :
Appliquez l'attribut DLLImportAttribute à la fonction ou méthode statique dans du code managé.
Remplacez les types de données managés par des types de données non managés.
Vous pouvez utiliser la documentation fournie avec une fonction non managée pour construire un prototype managé équivalent en appliquant l'attribut avec ses champs facultatifs et en remplaçant les types de données managés par des types non managés. Pour obtenir les instructions sur la manière d'appliquer l'attribut DllImportAttribute, consultez Utilisation de fonctions DLL non managées.
Cette section fournit des exemples qui montrent comment créer des prototypes de fonction managée permettant de passer des arguments et de recevoir des valeurs de retour à partir de fonctions exportées par des bibliothèques non managées. Les exemples montrent également quand utiliser l'attribut MarshalAsAttribute et la classe Marshal pour marshaler explicitement des données.
Dans cette section
Types de données d'appel de code non managé
Fournit une liste des types de données managés et leurs types de données non managés correspondants.PinvokeLib.dll
Fournit le code qui définit les fonctions de bibliothèque fournies par Pinvoke.dll.Marshaling de chaînes
Décrit comment passer des chaînes par valeur, par référence, dans des structures, des classes et des tableaux.Marshaling de classes, de structures, et d'unions
Décrit comment passer des classes par valeur, comment passer diverses structures, et comment passer des unions avec des types valeur et mélangés.Marshaling des tableaux de types
Décrit comment passer des tableaux multidimensionnels d'entiers par valeur et comment passer des tableaux unidimensionnels par référence.Exemples divers de marshaling
Décrit les aspects de garbage collection et de thread qui affectent le comportement de marshaling d'interopérabilité.
Sections connexes
Marshaling d'interopérabilité
Décrit le marshaling de COM Interop et de l'appel de code non managé.comportement de marshaling par défaut
Décrit les règles utilisées par le service marshaling d'interopérabilité pour marshaler des données.Consommation de fonctions DLL non managées
Décrit comment appeler des fonctions DLL non managées à l'aide de l'appel de code non managé.