Auf Englisch lesen

Freigeben über


Marshal.StringToCoTaskMemUni(String) Methode

Definition

Kopiert den Inhalt eines verwalteten String in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

C#
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni(string s);
C#
public static IntPtr StringToCoTaskMemUni(string? s);
C#
public static IntPtr StringToCoTaskMemUni(string s);

Parameter

s
String

Eine zu kopierende verwaltete Zeichenfolge.

Gibt zurück

IntPtr

Eine ganze Zahl, die einen Zeiger auf den für die Zeichenfolge belegten Speicherblock darstellt, oder 0, wenn s gleich null ist.

Attribute

Ausnahmen

Der s-Parameter übersteigt die vom Betriebssystem zugelassene maximale Länge.

Es ist nicht genügend Arbeitsspeicher verfügbar.

Hinweise

StringToCoTaskMemUni ist nützlich für benutzerdefiniertes Marshalling oder für die Verwendung beim Mischen von verwaltetem und nicht verwaltetem Code. Da diese Methode den nicht verwalteten Arbeitsspeicher zuordnet, der für eine Zeichenfolge erforderlich ist, geben Sie den Arbeitsspeicher immer durch Aufrufen Marshal.FreeCoTaskMemvon frei. Diese Methode stellt die entgegengesetzte Funktionalität von bereit Marshal.PtrToStringUni. Die Zeichen der Zeichenfolge werden als Unicode-Zeichen kopiert.

Diese API spiegelt die Windows-Definition von Unicode wider, bei der es sich um eine UTF-16 2-Byte-Codierung handelt. Auf vielen Nicht-Windows-Plattformen ist der wchar_t Datentyp 4 Bytes, nicht 2 Bytes. Wenden Sie sich an Ihren Compiler, um zu überprüfen, ob wchar_t stattdessen verwendet werden kann oder char16_t verwendet werden soll.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Weitere Informationen