Marshal.PtrToStringAnsi Marshal.PtrToStringAnsi Marshal.PtrToStringAnsi Marshal.PtrToStringAnsi Method

Definition

Reserviert einen verwalteten String und kopiert eine nicht verwaltete ANSI-Zeichenfolge ganz oder teilweise hinein.Allocates a managed String and copies all or part of an unmanaged ANSI string into it.

Überlädt

PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr)

Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI-Zeichenfolge in einen verwalteten String und erweitert die einzelnen ANSI-Zeichen zu UNICODE-Zeichen.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32)

Reserviert einen verwalteten String, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI-Zeichenfolge hinein und erweitert jedes ANSI-Zeichen zu einem Unicode-Zeichen.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr)

Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI-Zeichenfolge in einen verwalteten String und erweitert die einzelnen ANSI-Zeichen zu UNICODE-Zeichen.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

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

Parameter

ptr
IntPtr IntPtr IntPtr IntPtr

Die Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.The address of the first character of the unmanaged string.

Gibt zurück

Eine verwaltete Zeichenfolge, die eine Kopie der nicht verwalteten ANSI-Zeichenfolge enthält.A managed string that holds a copy of the unmanaged ANSI string. Wenn ptr den Wert null aufweist, gibt die Methode eine NULL-Zeichenfolge zurück.If ptr is null, the method returns a null string.

Beispiele

Im folgenden Beispiel wird die PtrToStringAnsi -Methode verwendet, um eine verwaltete Zeichenfolge aus char einem nicht verwalteten Array zu erstellen.The following example uses the PtrToStringAnsi method to create a managed string from an unmanaged char array.

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

PtrToStringAnsiist nützlich für das benutzerdefinierte Marshalling oder das Mischen von verwaltetem und nicht verwaltetem Code.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Da diese Methode eine Kopie der Inhalte der nicht verwalteten Zeichenfolge erstellt, müssen Sie die Original Zeichenfolge nach Bedarf freigeben.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Diese Methode stellt die gegenüberliegende Funktionalität Marshal.StringToCoTaskMemAnsi der Marshal.StringToHGlobalAnsi Methoden und bereit.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

Sicherheit

SecurityCriticalAttribute
Erfordert volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.requires full trust for the immediate caller. Dieser Member kann nicht von teilweise vertrauenswürdigem oder transparentem Code verwendet werden.This member cannot be used by partially trusted or transparent code.

Siehe auch

PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32)

Reserviert einen verwalteten String, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI-Zeichenfolge hinein und erweitert jedes ANSI-Zeichen zu einem Unicode-Zeichen.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

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

Parameter

ptr
IntPtr IntPtr IntPtr IntPtr

Die Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.The address of the first character of the unmanaged string.

len
Int32 Int32 Int32 Int32

Die zu kopierende Anzahl von Bytes aus der Eingabezeichenfolge.The byte count of the input string to copy.

Gibt zurück

Eine verwaltete Zeichenfolge, die eine Kopie der systemeigenen ANSI-Zeichenfolge enthält, wenn der Wert des ptr-Parameters nicht null ist. Andernfalls gibt diese Methode null zurück.A managed string that holds a copy of the native ANSI string if the value of the ptr parameter is not null; otherwise, this method returns null.

Ausnahmen

len ist kleiner als Null.len is less than zero.

Beispiele

Im folgenden Beispiel wird die PtrToStringAnsi -Methode verwendet, um eine verwaltete Zeichenfolge auschar einem nicht verwalteten Array zu erstellen.The following example uses the PtrToStringAnsi method to create a managed string from an unmanagedchar array.

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

PtrToStringAnsiist nützlich für das benutzerdefinierte Marshalling oder das Mischen von verwaltetem und nicht verwaltetem Code.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Da diese Methode eine Kopie der Inhalte der nicht verwalteten Zeichenfolge erstellt, müssen Sie die Original Zeichenfolge nach Bedarf freigeben.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Diese Methode stellt die gegenüberliegende Funktionalität Marshal.StringToCoTaskMemAnsi der Marshal.StringToHGlobalAnsi Methoden und bereit.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

Sicherheit

SecurityCriticalAttribute
Erfordert volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer.requires full trust for the immediate caller. Dieser Member kann nicht von teilweise vertrauenswürdigem oder transparentem Code verwendet werden.This member cannot be used by partially trusted or transparent code.

Siehe auch

Gilt für: