Marshal.PtrToStringAnsi Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Allokerar en hanterad String och kopierar hela eller en del av en ohanterad ANSI-sträng (på Windows) eller UTF-8-sträng (på Unix) till den.
Överlagringar
| Name | Description |
|---|---|
| PtrToStringAnsi(IntPtr) |
Kopierar alla tecken upp till det första null-tecknet från en ohanterad ANSI- eller UTF-8-sträng till en hanterad String, och breddar varje tecken till UTF-16. |
| PtrToStringAnsi(IntPtr, Int32) |
Allokerar en hanterad String, kopierar ett angivet antal tecken från en ohanterad ANSI- eller UTF-8-sträng till den och breddar varje tecken till UTF-16. |
PtrToStringAnsi(IntPtr)
Kopierar alla tecken upp till det första null-tecknet från en ohanterad ANSI- eller UTF-8-sträng till en hanterad String, och breddar varje tecken till 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
Parametrar
- ptr
-
IntPtr
nativeint
Adressen till det första tecknet i den ohanterade strängen.
Returer
En hanterad sträng som innehåller en kopia av den ohanterade strängen. Om ptr är nullreturnerar metoden en null-sträng.
- Attribut
Exempel
I följande exempel används PtrToStringAnsi metoden för att skapa en hanterad sträng från en ohanterad char matris.
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);
}
Kommentarer
PtrToStringAnsi är användbart för anpassad marskalkering eller vid blandning av hanterad och ohanterad kod. Eftersom den här metoden skapar en kopia av den ohanterade strängens innehåll måste du frigöra den ursprungliga strängen efter behov. Den här metoden ger motsatta funktioner för Marshal.StringToCoTaskMemAnsi metoderna och Marshal.StringToHGlobalAnsi .
Se även
Gäller för
PtrToStringAnsi(IntPtr, Int32)
Allokerar en hanterad String, kopierar ett angivet antal tecken från en ohanterad ANSI- eller UTF-8-sträng till den och breddar varje tecken till 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
Parametrar
- ptr
-
IntPtr
nativeint
Adressen till det första tecknet i den ohanterade strängen.
- len
- Int32
Byteantalet för den indatasträng som ska kopieras.
Returer
En hanterad sträng som innehåller en kopia av den interna strängen om värdet för parametern ptr inte nullär . Annars returnerar nullden här metoden .
- Attribut
Undantag
len är mindre än noll.
Exempel
I följande exempel används PtrToStringAnsi metoden för att skapa en hanterad sträng från en ohanteradchar matris.
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);
}
Kommentarer
PtrToStringAnsi är användbart för anpassad marskalkering eller vid blandning av hanterad och ohanterad kod. Eftersom den här metoden skapar en kopia av den ohanterade strängens innehåll måste du frigöra den ursprungliga strängen efter behov. Den här metoden ger motsatta funktioner för Marshal.StringToCoTaskMemAnsi metoderna och Marshal.StringToHGlobalAnsi .