Marshal.StringToHGlobalUni(String) Método

Definición

Copia el contenido de un String administrado en la memoria no administrada.

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

Parámetros

s
String

Cadena administrada que se va a copiar.

Devoluciones

IntPtr

nativeint

Dirección, en memoria no administrada, donde se copió s o 0 si s es null.

Atributos

Excepciones

El método no pudo asignar la suficiente memoria de montón nativo.

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

Comentarios

StringToHGlobalUni 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 FreeHGlobal. Este método proporciona la funcionalidad opuesta de Marshal.PtrToStringUni.

Este método copia los caracteres NULL incrustados e incluye un carácter nulo de terminación.

Esta API refleja la definición de Windows de Unicode, que es una codificación de 2 bytes UTF-16. En muchas plataformas que no son de 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