Marshal.PtrToStringAnsi Método

Definição

Aloca um String gerido e copia toda ou parte de uma cadeia ANSI não gerida (em Windows) ou UTF-8 (em Unix) para nela.

Sobrecargas

Name Description
PtrToStringAnsi(IntPtr)

Copia todos os caracteres até ao primeiro carácter nulo de uma cadeia ANSI ou UTF-8 não gerida para uma gerida String, e alarga cada carácter para UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Aloca um , gerido String, copia um número especificado de caracteres de uma cadeia ANSI ou UTF-8 não gerida para ele, e alarga cada carácter para UTF-16.

PtrToStringAnsi(IntPtr)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Copia todos os caracteres até ao primeiro carácter nulo de uma cadeia ANSI ou UTF-8 não gerida para uma gerida String, e alarga cada carácter para 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

Parâmetros

ptr
IntPtr

nativeint

O endereço do primeiro carácter da cadeia não gerida.

Devoluções

Uma cadeia gerida que contém uma cópia da cadeia não gerida. Se ptr for null, o método devolve uma cadeia nula.

Atributos

Exemplos

O exemplo seguinte utiliza o PtrToStringAnsi método para criar uma string gerida a partir de um array não gerido char .

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

Observações

PtrToStringAnsi é útil para marshaling personalizado ou ao misturar código gerido e não gerido. Como este método cria uma cópia do conteúdo da cadeia não gerida, deve libertar a cadeia original conforme apropriado. Este método fornece a funcionalidade oposta dos Marshal.StringToCoTaskMemAnsi métodos e Marshal.StringToHGlobalAnsi .

Ver também

Aplica-se a

PtrToStringAnsi(IntPtr, Int32)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Aloca um , gerido String, copia um número especificado de caracteres de uma cadeia ANSI ou UTF-8 não gerida para ele, e alarga cada carácter para 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

Parâmetros

ptr
IntPtr

nativeint

O endereço do primeiro carácter da cadeia não gerida.

len
Int32

A contagem de bytes da cadeia de entrada a copiar.

Devoluções

Uma cadeia gerida que contém uma cópia da cadeia nativa se o valor do ptr parâmetro não nullfor ; caso contrário, este método devolve null.

Atributos

Exceções

len é inferior a zero.

Exemplos

O exemplo seguinte utiliza o PtrToStringAnsi método para criar uma string gerida a partir de um array não geridochar .

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

Observações

PtrToStringAnsi é útil para marshaling personalizado ou ao misturar código gerido e não gerido. Como este método cria uma cópia do conteúdo da cadeia não gerida, deve libertar a cadeia original conforme apropriado. Este método fornece a funcionalidade oposta dos Marshal.StringToCoTaskMemAnsi métodos e Marshal.StringToHGlobalAnsi .

Ver também

Aplica-se a