Marshal.StringToHGlobalUni(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Kopiert den Inhalt eines verwalteten String in den 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 zu kopierende verwaltete Zeichenfolge.
Gibt zurück
nativeint
Die Adresse im nicht verwalteten Arbeitsspeicher, an die s
kopiert wurde, oder 0, wenn s
gleich null
ist.
- Attribute
Ausnahmen
Die Methode konnte nicht genügend Speicher für den systemeigenen Heap belegen.
Der s
-Parameter übersteigt die vom Betriebssystem zugelassene maximale Länge.
Hinweise
StringToHGlobalUni 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 FreeHGlobalvon frei. Diese Methode stellt die entgegengesetzte Funktionalität von bereit Marshal.PtrToStringUni.
Diese Methode kopiert eingebettete NULL-Zeichen und enthält ein abschließendes 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 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.