Marshal.StringToHGlobalUni(String) Metoda

Definicja

Kopiuje zawartość zarządzanego 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 której s został skopiowany, lub 0, jeśli s ma wartość null.

Atrybuty

Wyjątki

Metoda nie mogła 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 marshalingu niestandardowego lub do użycia podczas mieszania kodu zarządzanego i niezarządzanych. Ponieważ ta metoda przydziela niezarządzaną pamięć wymaganą dla ciągu, zawsze zwalnia pamięć przez wywołanie metody FreeHGlobal. Ta metoda zapewnia przeciwną funkcjonalność programu Marshal.PtrToStringUni.

Ta metoda kopiuje osadzone znaki null i zawiera znak kończący wartość null.

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 go użyć.

Dotyczy

Zobacz też