Udostępnij za pośrednictwem


Marshal.StringToHGlobalUni(String) Metoda

Definicja

Kopiuje zawartość zarządzanej String do niezarządzanej pamięci.

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

Zarządzany ciąg do skopiowania.

Zwraca

IntPtr

nativeint

Adres, w pamięci niezarządzanej, do miejsca, w którym s został skopiowany, lub 0, jeśli s to null.

Atrybuty

Wyjątki

Metoda nie może przydzielić wystarczającej ilości natywnej pamięci sterty.

Parametr s przekracza maksymalną długość dozwoloną przez system operacyjny.

Uwagi

StringToHGlobalUni jest przydatne w przypadku niestandardowego marshalingu lub do użycia podczas mieszania zarządzanego i niezarządzanych kodu. Ponieważ ta metoda przydziela niezarządzaną pamięć wymaganą dla ciągu, zawsze zwalnia pamięć przez wywołanie metody FreeHGlobal. Ta metoda zapewnia odwrotną funkcjonalność programu Marshal.PtrToStringUni.

Ta metoda kopiuje osadzone znaki null i zawiera znak o wartości null zakończenia.

Ten interfejs API odzwierciedla definicję systemu Windows unicode, która jest kodowaniem UTF-16 2-bajtowym. Na wielu platformach wchar_t innych niż Windows typ danych to 4 bajty, a nie 2 bajty. Skonsultuj się z kompilatorem, aby potwierdzić, czy wchar_t można go użyć lub char16_t zamiast tego należy użyć.

Dotyczy

Zobacz też