Marshal.StringToHGlobalUni(String) Metod

Definition

Kopierar innehållet i en hanterad String till ohanterat minne.

public:
 static IntPtr StringToHGlobalUni(System::String ^ s);
[System.Security.SecurityCritical]
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

Parametrar

s
String

En hanterad sträng som ska kopieras.

Returer

IntPtr

nativeint

Adressen, i ohanterat minne, till den plats där den s kopierades, eller 0 om s är null.

Attribut

Undantag

Metoden kunde inte allokera tillräckligt med internt heapminne.

Parametern s överskrider den maximala längd som tillåts av operativsystemet.

Kommentarer

StringToHGlobalUni är användbart för anpassad marskalkering eller för användning vid blandning av hanterad och ohanterad kod. Eftersom den här metoden allokerar det ohanterade minne som krävs för en sträng frigör du alltid minnet genom att anropa FreeHGlobal. Den här metoden ger motsatta funktioner i Marshal.PtrToStringUni.

Den här metoden kopierar inbäddade null-tecken och innehåller ett avslutande null-tecken.

Det här API:et återspeglar den Windows definitionen av Unicode, som är en UTF-16 2-byteskodning. På många icke-Windows plattformar är datatypen wchar_t 4 byte, inte 2 byte. Kontakta kompilatorn för att bekräfta om wchar_t kan användas eller char16_t ska användas i stället.

Gäller för

Se även