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
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.