Marshal.PtrToStringAnsi Metoda

Definice

Přidělí spravovanou String a zkopíruje do něj veškerý nebo část nespravovaného řetězce ANSI (v systému Windows) nebo UTF-8 (v Unixu).

Přetížení

Name Description
PtrToStringAnsi(IntPtr)

Zkopíruje všechny znaky až do prvního znaku null z nespravovaného řetězce ANSI nebo UTF-8 do spravovaného Stringznaku a rozšíří každý znak na UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Přidělí spravovaný Stringřetězec , zkopíruje do něj zadaný počet znaků z nespravovaného řetězce ANSI nebo UTF-8 a rozšíří každý znak na UTF-16.

PtrToStringAnsi(IntPtr)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Zkopíruje všechny znaky až do prvního znaku null z nespravovaného řetězce ANSI nebo UTF-8 do spravovaného Stringznaku a rozšíří každý znak na UTF-16.

public:
 static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi(IntPtr ptr);
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

Parametry

ptr
IntPtr

nativeint

Adresa prvního znaku nespravovaného řetězce.

Návraty

Spravovaný řetězec, který obsahuje kopii nespravovaného řetězce. Pokud ptr je null, metoda vrátí řetězec null.

Atributy

Příklady

Následující příklad používá metodu PtrToStringAnsi k vytvoření spravovaného řetězce z nespravovaného char pole.

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

Poznámky

PtrToStringAnsi je užitečná pro vlastní zařazování nebo při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda vytvoří kopii obsahu nespravovaného řetězce, musíte podle potřeby uvolnit původní řetězec. Tato metoda poskytuje opačné funkce Marshal.StringToCoTaskMemAnsi a Marshal.StringToHGlobalAnsi metody.

Viz také

Platí pro

PtrToStringAnsi(IntPtr, Int32)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Přidělí spravovaný Stringřetězec , zkopíruje do něj zadaný počet znaků z nespravovaného řetězce ANSI nebo UTF-8 a rozšíří každý znak na 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

Parametry

ptr
IntPtr

nativeint

Adresa prvního znaku nespravovaného řetězce.

len
Int32

Počet bajtů vstupního řetězce, který chcete zkopírovat.

Návraty

Spravovaný řetězec, který obsahuje kopii nativního řetězce, pokud hodnota ptr parametru není null; jinak tato metoda vrátí null.

Atributy

Výjimky

Hodnota len je menší než nula.

Příklady

Následující příklad používá metodu PtrToStringAnsi k vytvoření spravovaného řetězce z nespravovanéhochar pole.

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

Poznámky

PtrToStringAnsi je užitečná pro vlastní zařazování nebo při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda vytvoří kopii obsahu nespravovaného řetězce, musíte podle potřeby uvolnit původní řetězec. Tato metoda poskytuje opačné funkce Marshal.StringToCoTaskMemAnsi a Marshal.StringToHGlobalAnsi metody.

Viz také

Platí pro