Comparteix a través de


Marshal.StringToCoTaskMemUni(String) Método

Definición

Copia el contenido de un String administrado en un bloque de memoria asignado desde el asignador de tareas COM no administrado.

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

Parámetros

s
String

Cadena administrada que se va a copiar.

Devoluciones

IntPtr

nativeint

Entero que representa un puntero al bloque de memoria asignado a la cadena, o 0 si s es null.

Atributos

Excepciones

El parámetro s supera la longitud máxima permitida por el sistema operativo.

No hay suficiente memoria disponible.

Comentarios

StringToCoTaskMemUni es útil para la serialización personalizada o para su uso al mezclar código administrado y no administrado. Dado que este método asigna la memoria no administrada necesaria para una cadena, libere siempre la memoria llamando a Marshal.FreeCoTaskMem. Este método proporciona la funcionalidad opuesta de Marshal.PtrToStringUni. Los caracteres de la cadena se copian como caracteres Unicode.

Esta API refleja la definición de Windows de Unicode, que es una codificación UTF-16 de 2 bytes. En muchas plataformas que no son windows, el wchar_t tipo de datos es de 4 bytes, no de 2 bytes. Consulte al compilador para confirmar si wchar_t se puede usar o char16_t debe usarse en su lugar.

Se aplica a

Consulte también