Sdílet prostřednictvím


Marshal.StringToHGlobalUni(String) Metoda

Definice

Zkopíruje obsah spravovaného String objektu do nespravované paměti.

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

Parametry

s
String

Spravovaný řetězec, který se má zkopírovat.

Návraty

IntPtr

nativeint

Adresa v nespravované paměti, do které s se zkopírovala, nebo 0, pokud s je null.

Atributy

Výjimky

Metoda nemohla přidělit dostatek nativní paměti haldy.

Parametr s překračuje maximální délku povolenou operačním systémem.

Poznámky

StringToHGlobalUni je užitečný pro vlastní zařazování nebo pro použití při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda přiděluje nespravovanou paměť potřebnou pro řetězec, vždy uvolněte paměť voláním FreeHGlobal. Tato metoda poskytuje opačnou funkci než Marshal.PtrToStringUni.

Tato metoda zkopíruje vložené znaky null a obsahuje ukončující znak null.

Toto rozhraní API odráží definici Sady Unicode ve Windows, což je kódování UTF-16 2 bajtů. Na mnoha platformách bez wchar_t Windows je datový typ 4 bajty, ne 2 bajty. Obraťte se na kompilátor a ověřte, jestli wchar_t je možné použít místo toho.char16_t

Platí pro

Viz také