Marshal.StringToCoTaskMemUni(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.