Marshal.StringToCoTaskMemUni(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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ć.