Marshal.PtrToStringAnsi-Methode: (IntPtr, Int32)
Veröffentlicht: Oktober 2016
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.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
[SecurityCriticalAttribute]
public static string PtrToStringAnsi(
IntPtr ptr,
int len
)
public:
[SecurityCriticalAttribute]
static String^ PtrToStringAnsi(
IntPtr ptr,
int len
)
[<SecurityCriticalAttribute>]
static member PtrToStringAnsi :
ptr:nativeint *
len:int -> string
<SecurityCriticalAttribute>
Public Shared Function PtrToStringAnsi (
ptr As IntPtr,
len As Integer
) As String
Parameter
ptr
Type: System.IntPtrDie Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.
len
Type: System.Int32Die zu kopierende Anzahl von Bytes aus der Eingabezeichenfolge.
Rückgabewert
Type: System.String
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.
Ausnahmen
Exception | Condition |
---|---|
ArgumentException | len ist kleiner als Null. |
Hinweise
PtrToStringAnsi ist hilfreich beim benutzerdefinierten Marshalling und beim Kombinieren von verwaltetem und nicht verwaltetem Code. Da diese Methode eine Kopie des Inhalts der nicht verwalteten Zeichenfolge erstellt wird, müssen Sie die ursprüngliche Zeichenfolge ggf. freigeben. Diese Methode stellt die Umkehrfunktionen von der Marshal.StringToCoTaskMemAnsi und Marshal.StringToHGlobalAnsi Methoden.
Beispiele
Im folgenden Beispiel wird die PtrToStringAnsi Methode zum Erstellen einer verwalteten Zeichenfolge aus einem nicht verwaltetenchar 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);
}
Sicherheit
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Versionsinformationen
Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Siehe auch
StringToCoTaskMemAnsi
StringToHGlobalAnsi
PtrToStringAnsi Überladen
Marshal-Klasse
System.Runtime.InteropServices-Namespace
Zurück zum Anfang