Marshal.StringToHGlobalUni(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 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
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 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 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.