Marshal.PtrToStringAnsi Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wijst een beheerde String toe en kopieert alle of een deel van een niet-beheerde ANSI-tekenreeks (op Windows) of UTF-8 (op Unix).
Overloads
| Name | Description |
|---|---|
| PtrToStringAnsi(IntPtr) |
Kopieert alle tekens tot het eerste null-teken van een niet-beheerde ANSI- of UTF-8-tekenreeks naar een beheerde Stringtekenreeks en verbreedt elk teken naar UTF-16. |
| PtrToStringAnsi(IntPtr, Int32) |
Hiermee wijst u een beheerde tekenreeks toe, kopieert u een opgegeven aantal tekens uit een niet-beheerde StringANSI- of UTF-8-tekenreeks en wordt elk teken uitgebreid naar UTF-16. |
PtrToStringAnsi(IntPtr)
Kopieert alle tekens tot het eerste null-teken van een niet-beheerde ANSI- of UTF-8-tekenreeks naar een beheerde Stringtekenreeks en verbreedt elk teken naar UTF-16.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
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
Parameters
- ptr
-
IntPtr
nativeint
Het adres van het eerste teken van de niet-beheerde tekenreeks.
Retouren
Een beheerde tekenreeks die een kopie van de niet-beheerde tekenreeks bevat. Als ptr dat het is null, retourneert de methode een null-tekenreeks.
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt de PtrToStringAnsi methode gebruikt om een beheerde tekenreeks te maken op basis van een niet-beheerde char matrix.
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);
}
Opmerkingen
PtrToStringAnsi is handig voor aangepaste marshaling of bij het combineren van beheerde en onbeheerde code. Omdat met deze methode een kopie van de inhoud van de niet-beheerde tekenreeks wordt gemaakt, moet u de oorspronkelijke tekenreeks naar wens vrij maken. Deze methode biedt de tegenovergestelde functionaliteit van de Marshal.StringToCoTaskMemAnsi en Marshal.StringToHGlobalAnsi methoden.
Zie ook
Van toepassing op
PtrToStringAnsi(IntPtr, Int32)
Hiermee wijst u een beheerde tekenreeks toe, kopieert u een opgegeven aantal tekens uit een niet-beheerde StringANSI- of UTF-8-tekenreeks en wordt elk teken uitgebreid naar 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
Parameters
- ptr
-
IntPtr
nativeint
Het adres van het eerste teken van de niet-beheerde tekenreeks.
- len
- Int32
Het aantal bytes van de invoertekenreeks die moet worden gekopieerd.
Retouren
Een beheerde tekenreeks die een kopie van de systeemeigen tekenreeks bevat als de waarde van de ptr parameter niet nullis; anders retourneert nulldeze methode.
- Kenmerken
Uitzonderingen
len is kleiner dan nul.
Voorbeelden
In het volgende voorbeeld wordt de PtrToStringAnsi methode gebruikt om een beheerde tekenreeks te maken op basis van een niet-beheerdechar matrix.
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);
}
Opmerkingen
PtrToStringAnsi is handig voor aangepaste marshaling of bij het combineren van beheerde en onbeheerde code. Omdat met deze methode een kopie van de inhoud van de niet-beheerde tekenreeks wordt gemaakt, moet u de oorspronkelijke tekenreeks naar wens vrij maken. Deze methode biedt de tegenovergestelde functionaliteit van de Marshal.StringToCoTaskMemAnsi en Marshal.StringToHGlobalAnsi methoden.