Condividi tramite


Marshal.StringToHGlobalUni(String) Metodo

Definizione

Copia il contenuto di un oggetto String gestito nella memoria non gestita.

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

Parametri

s
String

Stringa gestita da copiare.

Restituisce

IntPtr

nativeint

Indirizzo, nella memoria non gestita, in cui è stato copiato s, oppure 0 se s è null.

Attributi

Eccezioni

Il metodo non è riuscito ad allocare memoria dell'heap nativo sufficiente.

Il parametro s supera la lunghezza massima consentita dal sistema operativo.

Commenti

StringToHGlobalUni è utile per il marshalling personalizzato o per l'uso durante la combinazione di codice gestito e non gestito. Poiché questo metodo alloca la memoria non gestita necessaria per una stringa, libera sempre la memoria chiamando FreeHGlobal. Questo metodo fornisce la funzionalità opposta di Marshal.PtrToStringUni.

Questo metodo copia i caratteri Null incorporati e include un carattere Null terminante.

Questa API riflette la definizione di Windows di Unicode, ovvero una codifica UTF-16 a 2 byte. In molte piattaforme non Windows, il wchar_t tipo di dati è di 4 byte, non 2 byte. Consultare il compilatore per confermare se wchar_t può essere usato o char16_t deve essere usato.

Si applica a

Vedi anche