Partager via


Marshaling de chaînes

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

Le tableau suivant répertorie les options de marshaling de chaînes. Il décrit leur utilisation et fournit un lien vers l’exemple .NET Framework correspondant.

String Description Exemple
Par valeur. Passe les structures en tant que paramètres entrants. MsgBox
Comme résultat. Retourne les chaînes à partir du code non managé. Chaînes
Par référence. Passe des chaînes en tant que paramètres entrants/sortants avec StringBuilder. Mémoires tampons
Dans une structure par valeur. Passe des chaînes dans une structure qui est un paramètre entrant. Structures
Dans une structure par référence (char*). Passe des chaînes dans une structure qui est un paramètre entrant/sortant. La fonction non managée attend un pointeur vers une mémoire tampon de caractères ; la taille de la mémoire tampon est un membre 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 entrant/sortant. La fonction non managée attend 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 entrant/sortant). La fonction non managée attend 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 entrant/sortant). La fonction non managée attend une mémoire tampon de caractères incorporée. OSInfo
Comme tableau de chaînes par valeur. Crée un tableau de chaînes qui est passé par valeur. Tableaux
Comme un tableau de structures qui contiennent des chaînes par valeur. Crée un tableau de structures qui contiennent des chaînes ; le tableau est passé par valeur. Tableaux

Voir aussi