Marshal.StringToCoTaskMemUni(String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zkopíruje obsah spravovaného String do bloku paměti přiděleného nespravovanému alokátoru úlohy MODELU 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
Spravovaný řetězec, který se má zkopírovat.
Návraty
nativeint
Celé číslo představující ukazatel na blok paměti přidělený pro řetězec nebo 0, pokud je nullargument s .
- Atributy
Výjimky
Parametr s překračuje maximální délku povolenou operačním systémem.
Není k dispozici dostatek paměti.
Poznámky
StringToCoTaskMemUni je užitečné pro vlastní zařazování nebo pro použití při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda přiděluje nespravovanou paměť potřebnou pro řetězec, vždy uvolněte paměť voláním Marshal.FreeCoTaskMem. Tato metoda poskytuje opačnou funkci Marshal.PtrToStringUni. Znaky řetězce se zkopírují jako znaky Unicode.
Toto rozhraní API odráží Windows definici Unicode, což je kódování UTF-16 2 bajtů. Na mnoha platformách, které nejsou Windows, je datový typ wchar_t 4 bajty, nikoli 2 bajty. Obraťte se na kompilátor a ověřte, jestli wchar_t je možné použít nebo char16_t použít.