Compartilhar via


Marshal.PtrToStringAuto Método

Definição

Aloca um String gerenciado e copia para ele toda ou parte de uma cadeia de caracteres não gerenciada.

Sobrecargas

PtrToStringAuto(IntPtr)

Aloca um String gerenciado e copia todos os caracteres até o primeiro caractere nulo de uma cadeia de caracteres armazenada na memória não gerenciada para ele.

PtrToStringAuto(IntPtr, Int32)

Aloca um String gerenciado e copia para ele o número especificado de caracteres de uma cadeia de caracteres armazenada na memória não gerenciada.

PtrToStringAuto(IntPtr)

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

Aloca um String gerenciado e copia todos os caracteres até o primeiro caractere nulo de uma cadeia de caracteres armazenada na memória não gerenciada para ele.

public:
 static System::String ^ PtrToStringAuto(IntPtr ptr);
public static string? PtrToStringAuto (IntPtr ptr);
public static string PtrToStringAuto (IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAuto (IntPtr ptr);
static member PtrToStringAuto : nativeint -> string
[<System.Security.SecurityCritical>]
static member PtrToStringAuto : nativeint -> string
Public Shared Function PtrToStringAuto (ptr As IntPtr) As String

Parâmetros

ptr
IntPtr

nativeint

Para plataformas Unicode, o endereço do primeiro caractere Unicode.

- ou -

Para plataformas ANSI, o endereço do primeiro caractere ANSI.

Retornos

Uma cadeia de caracteres gerenciada que mantém uma cópia da cadeia de caracteres não gerenciada, se o valor do ptr parâmetro não é null; caso contrário, esse método retornará null.

Atributos

Comentários

Se a plataforma atual for Unicode, cada caractere ANSI será ampliado para um caractere Unicode e esse método chamará PtrToStringUni. Caso contrário, esse método chamará PtrToStringAnsi.

PtrToStringAuto é útil para marshaling personalizado ou ao misturar código gerenciado e não gerenciado. Como esse método cria uma cópia do conteúdo da cadeia de caracteres não gerenciada, você deve liberar a cadeia de caracteres original conforme apropriado. PtrToStringAuto fornece a funcionalidade oposta dos Marshal.StringToCoTaskMemAuto métodos e Marshal.StringToHGlobalAuto .

Confira também

Aplica-se a

PtrToStringAuto(IntPtr, Int32)

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

Aloca um String gerenciado e copia para ele o número especificado de caracteres de uma cadeia de caracteres armazenada na memória não gerenciada.

public:
 static System::String ^ PtrToStringAuto(IntPtr ptr, int len);
public static string? PtrToStringAuto (IntPtr ptr, int len);
public static string PtrToStringAuto (IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringAuto (IntPtr ptr, int len);
static member PtrToStringAuto : nativeint * int -> string
[<System.Security.SecurityCritical>]
static member PtrToStringAuto : nativeint * int -> string
Public Shared Function PtrToStringAuto (ptr As IntPtr, len As Integer) As String

Parâmetros

ptr
IntPtr

nativeint

Para plataformas Unicode, o endereço do primeiro caractere Unicode.

- ou -

Para plataformas ANSI, o endereço do primeiro caractere ANSI.

len
Int32

O número de caracteres a serem copiados.

Retornos

Uma cadeia de caracteres gerenciada que mantém uma cópia da cadeia de caracteres nativa se o valor do parâmetro ptr não for null; caso contrário, esse método retornará null.

Atributos

Exceções

len é menor que zero.

Comentários

Em plataformas Unicode, esse método chama PtrToStringUni; em plataformas ANSI, ele chama PtrToStringAnsi. Nenhuma transformação é feita antes que esses métodos sejam chamados.

PtrToStringAuto é útil para marshaling personalizado ou ao misturar código gerenciado e não gerenciado. Como esse método cria uma cópia do conteúdo da cadeia de caracteres não gerenciada, você deve liberar a cadeia de caracteres original conforme apropriado. PtrToStringAuto fornece a funcionalidade oposta de Marshal.StringToCoTaskMemAuto e Marshal.StringToHGlobalAuto.

Confira também

Aplica-se a