Marshal.StringToHGlobalUni(String) Méthode

Définition

Copie le contenu d'un objet String managé dans la mémoire non managée.

public:
 static IntPtr StringToHGlobalUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToHGlobalUni (string s);
public static IntPtr StringToHGlobalUni (string? s);
public static IntPtr StringToHGlobalUni (string s);
[<System.Security.SecurityCritical>]
static member StringToHGlobalUni : string -> nativeint
static member StringToHGlobalUni : string -> nativeint
Public Shared Function StringToHGlobalUni (s As String) As IntPtr

Paramètres

s
String

Chaîne managée à copier.

Retours

IntPtr

nativeint

Adresse, dans la mémoire non managée, où s a été copié, ou 0 si s est null.

Attributs

Exceptions

La méthode n'a pas pu allouer suffisamment de mémoire de tas natif.

Le paramètre s dépasse la longueur maximale autorisée par le système d'exploitation.

Remarques

StringToHGlobalUni est utile pour le marshaling personnalisé ou pour une utilisation lors de la combinaison de code managé et non managé. Étant donné que cette méthode alloue la mémoire non managée requise pour une chaîne, libérez toujours la mémoire en appelant FreeHGlobal. Cette méthode fournit les fonctionnalités opposées de Marshal.PtrToStringUni.

Cette méthode copie les caractères null incorporés et inclut un caractère null de fin.

Cette API reflète la définition Windows d’Unicode, qui est un encodage de 2 octets UTF-16. Sur de nombreuses plateformes non Windows, le wchar_t type de données est de 4 octets, et non de 2 octets. Consultez votre compilateur pour vérifier si wchar_t vous pouvez l’utiliser ou char16_t si vous devez l’utiliser à la place.

S’applique à

Voir aussi