Freigeben über


Marshal.PtrToStringAuto Methode

Definition

Reserviert einen verwalteten String und kopiert eine nicht verwaltete Zeichenfolge ganz oder teilweise hinein.

Überlädt

PtrToStringAuto(IntPtr)

Reserviert einen verwalteten String und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer Zeichenfolge hinein, die im nicht verwalteten Speicher gespeichert ist.

PtrToStringAuto(IntPtr, Int32)

Reserviert einen verwalteten String und kopiert die angegebene Anzahl von Zeichen aus einer in nicht verwaltetem Speicher gespeicherten Zeichenfolge hinein.

PtrToStringAuto(IntPtr)

Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs

Reserviert einen verwalteten String und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer Zeichenfolge hinein, die im nicht verwalteten Speicher gespeichert ist.

public:
 static System::String ^ PtrToStringAuto(IntPtr ptr);
public static 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 null ist. Andernfalls gibt diese Methode null zurück.

Attribute

Hinweise

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

PtrToStringAuto ist nützlich für benutzerdefiniertes 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 nach Bedarf freigeben. PtrToStringAuto stellt die entgegengesetzte Funktionalität der Marshal.StringToCoTaskMemAuto Methoden und Marshal.StringToHGlobalAuto bereit.

Weitere Informationen

Gilt für:

PtrToStringAuto(IntPtr, Int32)

Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs

Reserviert einen verwalteten String und kopiert die angegebene Anzahl von Zeichen aus einer in nicht verwaltetem Speicher gespeicherten Zeichenfolge hinein.

public:
 static System::String ^ PtrToStringAuto(IntPtr ptr, int len);
public static 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 systemeigenen Zeichenfolge enthält, wenn der Wert des ptr-Parameters nicht null ist. Andernfalls gibt diese Methode null zurück.

Attribute

Ausnahmen

len ist kleiner als Null.

Hinweise

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

PtrToStringAuto ist nützlich für benutzerdefiniertes 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 nach Bedarf freigeben. PtrToStringAuto stellt die entgegengesetzte Funktionalität von Marshal.StringToCoTaskMemAuto und bereit Marshal.StringToHGlobalAuto.

Weitere Informationen

Gilt für: