Marshal.PtrToStringAnsi-Methode: (IntPtr)

 

Veröffentlicht: Oktober 2016

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.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

Syntax

[SecurityCriticalAttribute]
public static string PtrToStringAnsi(
    IntPtr ptr
)
public:
[SecurityCriticalAttribute]
static String^ PtrToStringAnsi(
    IntPtr ptr
)
[<SecurityCriticalAttribute>]
static member PtrToStringAnsi : 
        ptr:nativeint -> string
<SecurityCriticalAttribute>
Public Shared Function PtrToStringAnsi (
    ptr As IntPtr
) As String

Parameter

  • ptr
    Type: System.IntPtr

    Die Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.

Rückgabewert

Type: System.String

Eine verwaltete Zeichenfolge, die eine Kopie der nicht verwalteten ANSI-Zeichenfolge enthält. Wenn ptr den Wert null aufweist, gibt die Methode eine NULL-Zeichenfolge zurück.

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 verwalteten 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);
}

Sicherheit

SecurityCriticalAttribute

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