Marshal.PtrToStringAuto Methode

Definition

Ordnet eine verwaltete String und kopiert alle oder einen Teil einer nicht verwalteten Zeichenfolge in diese Zeichenfolge.

Überlädt

Name Beschreibung
PtrToStringAuto(IntPtr)

Weist ein verwaltetes String Zeichen zu und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer Zeichenfolge, die im nicht verwalteten Speicher gespeichert ist.

PtrToStringAuto(IntPtr, Int32)

Weist eine verwaltete String Zeichenfolge zu und kopiert die angegebene Anzahl von Zeichen aus einer Zeichenfolge, die im nicht verwalteten Speicher gespeichert ist.

PtrToStringAuto(IntPtr)

Weist ein verwaltetes String Zeichen zu und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer Zeichenfolge, die im nicht verwalteten Speicher gespeichert ist.

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

Parameter

ptr
IntPtr

nativeint

Für Unicode-Plattformen die Adresse des ersten Unicode-Zeichens.

-oder-

Für ANSI-Plattformen die Adresse des ersten ANSI-Zeichens.

Gibt zurück

Eine verwaltete Zeichenfolge, die eine Kopie der nicht verwalteten Zeichenfolge enthält, wenn der Wert des ptr Parameters nicht nullist; andernfalls gibt diese Methode zurück null.

Attribute

Hinweise

Wenn die aktuelle Plattform Unicode ist, wird jedes ANSI-Zeichen auf ein Unicode-Zeichen erweitert und diese Methode aufruft PtrToStringUni. Andernfalls wird diese Methode aufgerufen PtrToStringAnsi.

PtrToStringAuto ist nützlich für das benutzerdefinierte Marshalling oder beim Mischen von verwaltetem und nicht verwaltetem Code. Da diese Methode eine Kopie des Inhalts der nicht verwalteten Zeichenfolge erstellt, müssen Sie die ursprüngliche Zeichenfolge entsprechend freigeben. PtrToStringAuto stellt die entgegengesetzte Funktionalität der Marshal.StringToCoTaskMemAuto Und Marshal.StringToHGlobalAuto Methoden bereit.

Weitere Informationen

Gilt für:

PtrToStringAuto(IntPtr, Int32)

Weist eine verwaltete String Zeichenfolge zu und kopiert die angegebene Anzahl von Zeichen aus einer Zeichenfolge, die im nicht verwalteten Speicher gespeichert ist.

public:
 static System::String ^ PtrToStringAuto(IntPtr ptr, int len);
public static string PtrToStringAuto(IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringAuto(IntPtr ptr, int len);
static member PtrToStringAuto : nativeint * int -> string
[<System.Security.SecurityCritical>]
static member PtrToStringAuto : nativeint * int -> string
Public Shared Function PtrToStringAuto (ptr As IntPtr, len As Integer) As String

Parameter

ptr
IntPtr

nativeint

Für Unicode-Plattformen die Adresse des ersten Unicode-Zeichens.

-oder-

Für ANSI-Plattformen die Adresse des ersten ANSI-Zeichens.

len
Int32

Die Anzahl der zu kopierenden Zeichen.

Gibt zurück

Eine verwaltete Zeichenfolge, die eine Kopie der nativen Zeichenfolge enthält, wenn der Wert des ptr Parameters nicht nullist; andernfalls gibt diese Methode zurück null.

Attribute

Ausnahmen

len ist kleiner als 0 (null).

Hinweise

Auf Unicode-Plattformen ruft diese Methode ; PtrToStringUniauf ANSI-Plattformen auf PtrToStringAnsi. Bevor diese Methoden aufgerufen werden, werden keine Transformationen durchgeführt.

PtrToStringAuto ist nützlich für das benutzerdefinierte Marshalling oder beim Mischen von verwaltetem und nicht verwaltetem Code. Da diese Methode eine Kopie des Inhalts der nicht verwalteten Zeichenfolge erstellt, müssen Sie die ursprüngliche Zeichenfolge entsprechend freigeben. PtrToStringAuto bietet die entgegengesetzte Funktionalität von Marshal.StringToCoTaskMemAuto und Marshal.StringToHGlobalAuto.

Weitere Informationen

Gilt für: