Partager via


Marshaling de classes, de structures, et d'unions

Mise à jour : novembre 2007

Les classes et les structures sont similaires dans le .NET Framework. Elles peuvent avoir des champs, des propriétés et des événements. Ils peuvent également avoir des méthodes statiques et non statiques. Une différence notable réside dans le fait que les structures sont des types valeur et les classes sont des types référence.

Le tableau suivant répertorie les options de marshaling pour les classes, structures et unions ; il décrit leur usage et fournit un lien vers l'exemple correspondant d'appel de plateforme.

Type

Description

Exemple

Classe par valeur.

Passe une classe avec des membres entiers comme paramètre en entrée/sortie, comme le cas managé.

SysTime

Structure par valeur.

Passe des structures en tant que paramètres en entrée.

Structures

Structure par référence.

Passe des structures en tant que paramètres en entrée/sortie.

OSInfo

Structure avec des structures imbriquées (aplaties)

Passe une classe qui représente une structure avec des structures imbriquées dans la fonction non managée. La structure est aplatie en une grande structure dans le prototype managé.

FindFile

Structure avec des structures imbriquées (non aplaties)

Passe une structure avec une structure incorporée.

Structures

Structure dotée d'un pointeur vers une autre structure.

Passe une structure contenant un pointeur vers la seconde structure comme membre.

Structures

Tableau de structures avec des entiers par valeur.

Passe un tableau de structures contenant uniquement des entiers comme paramètre en entrée/sortie. Les membres du tableau peuvent être changés.

Tableaux

Tableau de structures avec des entiers et des chaînes par référence.

Passe un tableau de structures contenant des entiers et des chaînes comme paramètre Out. La fonction appelée alloue de la mémoire pour le tableau.

OutArrayOfStructs

Unions avec des types valeur.

Passe des unions avec des types valeur (entier et double).

Unions

Unions avec des types mélangés.

Passe des unions avec des types mélangés (entier et chaîne).

Unions

Valeurs Null en structure.

Passe une référence null (Nothing en Visual Basic) au lieu d'une référence à un type valeur.

HandleRef

Voir aussi

Concepts

Types de données d'appel de plate-forme

Marshaling de chaînes

Marshaling des tableaux de types

Exemples divers de marshaling

Autres ressources

Marshaling de données à l'aide de l'appel de plate-forme