Marshal.StringToCoTaskMemUni(String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Copie le contenu d'un String managé dans un bloc de mémoire alloué à partir de l'allocateur de tâche COM non managé.
public:
static IntPtr StringToCoTaskMemUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni (string s);
public static IntPtr StringToCoTaskMemUni (string? s);
public static IntPtr StringToCoTaskMemUni (string s);
[<System.Security.SecurityCritical>]
static member StringToCoTaskMemUni : string -> nativeint
static member StringToCoTaskMemUni : string -> nativeint
Public Shared Function StringToCoTaskMemUni (s As String) As IntPtr
Paramètres
- s
- String
Chaîne managée à copier.
Retours
nativeint
Entier représentant un pointeur vers le bloc de mémoire alloué pour la chaîne, ou 0 si s est null
.
- Attributs
Exceptions
Le paramètre s
dépasse la longueur maximale autorisée par le système d'exploitation.
Il n’y a pas suffisamment de mémoire disponible.
Remarques
StringToCoTaskMemUni est utile pour le marshaling personnalisé ou pour une utilisation lors du mélange 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 Marshal.FreeCoTaskMem. Cette méthode fournit la fonctionnalité inverse de Marshal.PtrToStringUni. Les caractères de la chaîne sont copiés en tant que caractères Unicode.
Cette API reflète la définition Windows d’Unicode, qui est un encodage UTF-16 2 octets. 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
peut être utilisé ou char16_t
doit être utilisé à la place.