Partager via


Marshaling de chaînes

L'appel de code non managé copie des paramètres de chaînes, en les convertissant du format .NET Framework (Unicode) au format non managé (ANSI), si nécessaire. Comme les chaînes managées sont immuables, l'appel de code non managé ne les recopie pas à partir de la mémoire non managée vers la mémoire managée au retour de fonction.

Le tableau suivant répertorie les options de marshaling pour les chaînes, décrit leur usage et fournit un lien vers l'exemple correspondant du .NET Framework.

String

Description

Exemple

Par valeur

Passe des chaînes en tant que paramètres en entrée.

MsgBox

Comme résultat.

Retourne des chaînes à partir du code non managé.

Chaînes

Par référence.

Passe des chaînes en tant que paramètres en entrée/sortie à l'aide de StringBuilder.

Buffers

Dans une structure par valeur.

Passe des chaînes dans une structure qui est un paramètre en entrée.

Structures

Dans une structure par référence (char*).

Passe des chaînes dans une structure qui est un paramètre en entrée/sortie. La fonction non managée nécessite un pointeur vers une mémoire tampon de caractères et la taille de la mémoire tampon fait partie de la structure.

Chaînes

Dans une structure par référence (char[]).

Passe des chaînes dans une structure qui est un paramètre en entrée/sortie. La fonction non managée nécessite une mémoire tampon de caractères incorporée.

OSInfo

Dans une classe par valeur (char*).

Passe des chaînes dans une classe (une classe est un paramètre en entrée/sortie). La fonction non managée nécessite un pointeur vers une mémoire tampon de caractères.

OpenFileDlg

Dans une classe par valeur (char[]).

Passe des chaînes dans une classe (une classe est un paramètre en entrée/sortie). La fonction non managée nécessite une mémoire tampon de caractères incorporée.

OSInfo

Comme tableau de chaînes par valeur.

Crée un tableau de chaînes passé par valeur.

Tableaux

Comme tableau de structures qui contient des chaînes par valeur.

Crée un tableau de structures qui contient des chaînes. Le tableau est passé par valeur.

Tableaux

Voir aussi

Concepts

Types de données d'appel de code non managé

Marshaling de classes, de structures, et d'unions

Marshaling des tableaux de types

Exemples divers de marshaling

Autres ressources

Marshaling de données à l'aide de l'appel de code managé