Condividi tramite


Marshal.StringToCoTaskMemUni(String) Metodo

Definizione

Copia il contenuto di un oggetto String gestito in un blocco di memoria allocato dall'allocatore di memoria delle attività COM non gestite.

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

Parametri

s
String

Stringa gestita da copiare.

Restituisce

IntPtr

nativeint

Intero che rappresenta un puntatore al blocco di memoria allocato per la stringa oppure 0 se s è null.

Attributi

Eccezioni

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

La memoria disponibile è insufficiente.

Commenti

StringToCoTaskMemUni è 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 Marshal.FreeCoTaskMem. Questo metodo fornisce la funzionalità opposta di Marshal.PtrToStringUni. I caratteri della stringa vengono copiati come caratteri Unicode.

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