Marshal.PtrToStringAnsi Methode

Definition

Weist eine verwaltete String zu und kopiert alle oder einen Teil einer nicht verwalteten ANSI -Zeichenfolge (auf Windows) oder UTF-8 (auf Unix) darin.

Überlädt

Name Beschreibung
PtrToStringAnsi(IntPtr)

Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in eine verwaltete StringZeichenfolge und erweitert jedes Zeichen auf UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Weist eine verwaltete StringZeichenfolge zu, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in die Zeichenfolge, und erweitert jedes Zeichen auf UTF-16.

PtrToStringAnsi(IntPtr)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
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 eine verwaltete StringZeichenfolge und erweitert jedes Zeichen auf 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 ja null, 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 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. Diese Methode stellt die entgegengesetzte Funktionalität der Marshal.StringToCoTaskMemAnsi Methoden und Marshal.StringToHGlobalAnsi Methoden bereit.

Weitere Informationen

Gilt für:

PtrToStringAnsi(IntPtr, Int32)

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

Weist eine verwaltete StringZeichenfolge zu, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in die Zeichenfolge, und erweitert jedes Zeichen auf 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 Byteanzahl der zu kopierenden Eingabezeichenfolge.

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).

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 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. Diese Methode stellt die entgegengesetzte Funktionalität der Marshal.StringToCoTaskMemAnsi Methoden und Marshal.StringToHGlobalAnsi Methoden bereit.

Weitere Informationen

Gilt für: