Marshal.PtrToStringAuto 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.
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
- StringToCoTaskMemAuto(String)
- StringToHGlobalAuto(String)
- PtrToStringUni(IntPtr, Int32)
- PtrToStringAnsi(IntPtr)
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
- StringToCoTaskMemAuto(String)
- StringToHGlobalAuto(String)
- PtrToStringUni(IntPtr, Int32)
- PtrToStringAnsi(IntPtr)