Compartir a través de


Marshal.PtrToStringAnsi Método

Definición

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 .

Consulte también

Se aplica a