Marshal.PtrToStringAnsi Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 .