Udostępnij za pośrednictwem


Marshal.StringToCoTaskMemUni(String) Metoda

Definicja

Kopiuje zawartość zarządzanego String bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

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

Parametry

s
String

Zarządzany ciąg do skopiowania.

Zwraca

IntPtr

nativeint

Liczba całkowita reprezentująca wskaźnik do bloku pamięci przydzielonej dla ciągu lub 0, jeśli wartość s to null.

Atrybuty

Wyjątki

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

Za mało dostępnej pamięci.

Uwagi

StringToCoTaskMemUni 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 Marshal.FreeCoTaskMem. Ta metoda zapewnia przeciwną funkcjonalność programu Marshal.PtrToStringUni. Znaki ciągu są kopiowane jako znaki Unicode.

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ż