Marshal.StringToHGlobalUni(String) Methode

Definition

Kopiert den Inhalt eines verwalteten String Speichers in nicht verwalteten Speicher.

public:
 static IntPtr StringToHGlobalUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToHGlobalUni(string s);
public static IntPtr StringToHGlobalUni(string? s);
public static IntPtr StringToHGlobalUni(string s);
[<System.Security.SecurityCritical>]
static member StringToHGlobalUni : string -> nativeint
static member StringToHGlobalUni : string -> nativeint
Public Shared Function StringToHGlobalUni (s As String) As IntPtr

Parameter

s
String

Eine verwaltete Zeichenfolge, die kopiert werden soll.

Gibt zurück

IntPtr

nativeint

Die Adresse im nicht verwalteten Speicher, an den der s Speicherort kopiert wurde, oder 0 ( falls s vorhanden null).

Attribute

Ausnahmen

Die Methode konnte nicht genügend systemeigene Heapspeicher zuordnen.

Der s Parameter überschreitet die maximal zulässige Länge des Betriebssystems.

Hinweise

StringToHGlobalUni ist nützlich für das benutzerdefinierte Marshalling oder für die Verwendung beim Mischen von verwaltetem und nicht verwaltetem Code. Da diese Methode den nicht verwalteten Speicher zuweist, der für eine Zeichenfolge erforderlich ist, geben Sie immer den Speicher frei, indem Sie den Aufruf aufrufen FreeHGlobal. Diese Methode bietet die entgegengesetzte Funktionalität von Marshal.PtrToStringUni.

Diese Methode kopiert eingebettete NULL-Zeichen und enthält ein endendes NULL-Zeichen.

Diese API spiegelt die Windows Definition von Unicode wider, bei der es sich um eine UTF-16-2-Byte-Codierung handelt. Auf vielen Plattformen ohne Windows beträgt der Datentyp wchar_t 4 Byte, nicht 2 Byte. Wenden Sie sich an Den Compiler, um zu bestätigen, ob wchar_t sie verwendet werden kann oder char16_t stattdessen verwendet werden soll.

Gilt für:

Weitere Informationen