Marshal.PtrToStringAnsi Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Asigna un String administrado y copia en él total o parcialmente una cadena ANSI (en Windows) o UTF-8 (en Unix) no administrada.
Sobrecargas
PtrToStringAnsi(IntPtr) |
Copia todos los caracteres hasta el primer carácter nulo de una cadena ANSI o UTF-8 no administrada a un String administrado y amplía cada carácter a UTF-16. |
PtrToStringAnsi(IntPtr, Int32) |
Asigna un String administrado, copia en él un número especificado de caracteres de una cadena ANSI o UTF-8 no administrada y amplía cada carácter a UTF-16. |
PtrToStringAnsi(IntPtr)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Copia todos los caracteres hasta el primer carácter nulo de una cadena ANSI o UTF-8 no administrada a un String administrado y amplía cada carácter a 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
Dirección del primer carácter de la cadena no administrada.
Devoluciones
Cadena administrada que contiene una copia de la cadena no administrada. Si ptr
es null
, el método devuelve una cadena nula.
- Atributos
Ejemplos
En el ejemplo siguiente se usa el PtrToStringAnsi método para crear una cadena administrada a partir de una matriz no administrada 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);
}
Comentarios
PtrToStringAnsi es útil para la serialización personalizada o al mezclar código administrado y no administrado. Dado que este método crea una copia del contenido de la cadena no administrada, debe liberar la cadena original según corresponda. Este método proporciona la funcionalidad opuesta de los Marshal.StringToCoTaskMemAnsi métodos y Marshal.StringToHGlobalAnsi .
Consulte también
Se aplica a
PtrToStringAnsi(IntPtr, Int32)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Asigna un String administrado, copia en él un número especificado de caracteres de una cadena ANSI o UTF-8 no administrada y amplía cada carácter a 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
Dirección del primer carácter de la cadena no administrada.
- len
- Int32
Número de bytes de la cadena de entrada que se va a copiar.
Devoluciones
Una cadena administrada que contiene una copia de la cadena nativa si el valor del parámetro ptr
no es null
; en caso contrario, este método devuelve null
.
- Atributos
Excepciones
len
es menor que cero.
Ejemplos
En el ejemplo siguiente se usa el PtrToStringAnsi método para crear una cadena administrada a partir de una matriz no administradachar
.
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);
}
Comentarios
PtrToStringAnsi es útil para la serialización personalizada o al mezclar código administrado y no administrado. Dado que este método crea una copia del contenido de la cadena no administrada, debe liberar la cadena original según corresponda. Este método proporciona la funcionalidad opuesta de los Marshal.StringToCoTaskMemAnsi métodos y Marshal.StringToHGlobalAnsi .