Compartilhar via


Método Marshal.PtrToStringAuto (IntPtr, Int32)

 

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

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Sintaxe

[SecurityCriticalAttribute]
public static string PtrToStringAuto(
    IntPtr ptr,
    int len
)
public:
[SecurityCriticalAttribute]
static String^ PtrToStringAuto(
    IntPtr ptr,
    int len
)
[<SecurityCriticalAttribute>]
static member PtrToStringAuto : 
        ptr:nativeint *
        len:int -> string
<SecurityCriticalAttribute>
Public Shared Function PtrToStringAuto (
    ptr As IntPtr,
    len As Integer
) As String

Parâmetros

  • ptr
    Type: System.IntPtr

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

    - ou -

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

  • len
    Type: System.Int32

    O número de caracteres a serem copiados.

Valor Retornado

Type: System.String

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

Exceções

Exception Condition
ArgumentException

len é menor que zero.

Comentários

Em plataformas de Unicode, esse método chama PtrToStringUni; em plataformas de ANSI, ele chama PtrToStringAnsi. Não há transformações são feitas antes que esses métodos são 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 gerenciado, você deve liberar a cadeia de caracteres original, conforme apropriado.PtrToStringAuto fornece a funcionalidade oposta do Marshal.StringToCoTaskMemAuto e Marshal.StringToHGlobalAuto.

Segurança

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Informações de Versão

.NET Framework
Disponível desde 1.1

Confira Também

StringToCoTaskMemAuto
StringToHGlobalAuto
PtrToStringUni
PtrToStringAnsi
PtrToStringAuto Sobrecarga
Classe Marshal
Namespace System.Runtime.InteropServices

Retornar ao início