Marshal.StringToCoTaskMemUni(String) Methode

Definitie

Hiermee kopieert u de inhoud van een beheerd String naar een blok geheugen dat is toegewezen vanuit de onbeheerde COM-taaktoewijzing.

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

Parameters

s
String

Een beheerde tekenreeks die moet worden gekopieerd.

Retouren

IntPtr

nativeint

Een geheel getal dat een aanwijzer vertegenwoordigt naar het blok geheugen dat is toegewezen voor de tekenreeks, of 0 als s.null

Kenmerken

Uitzonderingen

De s parameter overschrijdt de maximale lengte die door het besturingssysteem is toegestaan.

Er is onvoldoende geheugen beschikbaar.

Opmerkingen

StringToCoTaskMemUni is handig voor aangepaste marshaling of voor gebruik bij het combineren van beheerde en onbeheerde code. Omdat met deze methode het niet-beheerde geheugen wordt toegewezen dat is vereist voor een tekenreeks, kunt u altijd het geheugen vrijmaken door aan te roepen Marshal.FreeCoTaskMem. Deze methode biedt de tegenovergestelde functionaliteit van Marshal.PtrToStringUni. De tekens van de tekenreeks worden gekopieerd als Unicode-tekens.

Deze API weerspiegelt de Windows definitie van Unicode, een UTF-16 2-bytecodering. Op veel niet-Windows platforms is het gegevenstype wchar_t 4 bytes, niet 2 bytes. Raadpleeg uw compiler om te controleren of wchar_t deze kan worden gebruikt of char16_t moet worden gebruikt.

Van toepassing op

Zie ook