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.IntPtrPara 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.Int32O 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
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