Marshal.StringToHGlobalUni(String) Metodo

Definizione

Copia il contenuto di un oggetto gestito String in 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.

Valori restituiti

IntPtr

nativeint

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

Attributi

Eccezioni

Il metodo non è riuscito ad allocare memoria heap nativa sufficiente.

Il s parametro 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 di terminazione.

Questa API riflette la definizione Windows di Unicode, ovvero una codifica UTF-16 a 2 byte. In molte piattaforme non Windows, il tipo di dati wchar_t è di 4 byte e non di 2 byte. Consultare il compilatore per verificare se wchar_t è possibile usare o char16_t usare invece .

Si applica a

Vedi anche