Marshal.PtrToStringAnsi 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.
Belegt einen verwalteten String und kopiert eine nicht verwaltete ANSI- (unter Windows) oder UTF-8-Zeichenfolge (unter Unix) ganz oder teilweise hinein.
Überlädt
PtrToStringAnsi(IntPtr) |
Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in einen verwalteten String und erweitert die einzelnen ANSI-Zeichen zu UTF-16. |
PtrToStringAnsi(IntPtr, Int32) |
Belegt einen verwalteten String, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge hinein und erweitert jedes ANSI-Zeichen zu einem UTF-16. |
PtrToStringAnsi(IntPtr)
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in einen verwalteten String und erweitert die einzelnen ANSI-Zeichen zu UTF-16.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr);
public static string? PtrToStringAnsi (IntPtr ptr);
public static string PtrToStringAnsi (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member PtrToStringAnsi : nativeint -> string
static member PtrToStringAnsi : nativeint -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr) As String
Parameter
- ptr
-
IntPtr
nativeint
Die Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.
Gibt zurück
Eine verwaltete Zeichenfolge, die eine Kopie der nicht verwalteten Zeichenfolge enthält. Wenn ptr
den Wert null
aufweist, gibt die Methode eine NULL-Zeichenfolge zurück.
- Attribute
Beispiele
Im folgenden Beispiel wird die PtrToStringAnsi -Methode verwendet, um eine verwaltete Zeichenfolge aus einem nicht verwalteten char
Array zu erstellen.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged c string.
const char * myString = "Hello managed world (from the unmanaged world)!";
// Convert the c string to a managed String.
String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
// Display the string to the console.
Console::WriteLine(myManagedString);
}
Hinweise
PtrToStringAnsi 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. Diese Methode stellt die entgegengesetzte Funktionalität der Marshal.StringToCoTaskMemAnsi Methoden und Marshal.StringToHGlobalAnsi bereit.
Weitere Informationen
Gilt für:
PtrToStringAnsi(IntPtr, Int32)
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
Belegt einen verwalteten String, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge hinein und erweitert jedes ANSI-Zeichen zu einem UTF-16.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr, int len);
public static string PtrToStringAnsi (IntPtr ptr, int len);
[<System.Security.SecurityCritical>]
static member PtrToStringAnsi : nativeint * int -> string
static member PtrToStringAnsi : nativeint * int -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr, len As Integer) As String
Parameter
- ptr
-
IntPtr
nativeint
Die Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.
- len
- Int32
Die zu kopierende Anzahl von Bytes aus der Eingabezeichenfolge.
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.
Beispiele
Im folgenden Beispiel wird die PtrToStringAnsi -Methode verwendet, um eine verwaltete Zeichenfolge aus einem nicht verwaltetenchar
Array zu erstellen.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged c string.
const char * myString = "Hello managed world (from the unmanaged world)!";
// Convert the c string to a managed String.
String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
// Display the string to the console.
Console::WriteLine(myManagedString);
}
Hinweise
PtrToStringAnsi 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. Diese Methode stellt die entgegengesetzte Funktionalität der Marshal.StringToCoTaskMemAnsi Methoden und Marshal.StringToHGlobalAnsi bereit.