Marshal.PtrToStringAnsi Metod

Definition

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 .

Se även

Gäller för