Marshal.PtrToStringAnsi Method

Definition

Asigna un String administrado y copia en él total o parcialmente una cadena ANSI no administrada.Allocates a managed String and copies all or part of an unmanaged ANSI string into it.

Overloads

PtrToStringAnsi(IntPtr)

Copia todos los caracteres hasta el primer carácter nulo de una cadena ANSI no administrada a un String, administrado y ensancha cada carácter ANSI a Unicode.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr, Int32)

Asigna un String, administrado, copia en él un número especificado de caracteres de una cadena ANSI no administrada y ensancha cada carácter ANSI a Unicode.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr)

Copia todos los caracteres hasta el primer carácter nulo de una cadena ANSI no administrada a un String, administrado y ensancha cada carácter ANSI a Unicode.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

public:
 static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr);
public static string PtrToStringAnsi (IntPtr ptr);
static member PtrToStringAnsi : nativeint -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr) As String

Parameters

ptr
IntPtr

Dirección del primer carácter de la cadena no administrada.The address of the first character of the unmanaged string.

Returns

String

Cadena administrada que contiene una copia de la cadena ANSI no administrada.A managed string that holds a copy of the unmanaged ANSI string. Si ptr es null, el método devuelve una cadena nula.If ptr is null, the method returns a null string.

Attributes

Examples

En el ejemplo siguiente se usa el método PtrToStringAnsi para crear una cadena administrada a partir de una matriz de char no administrada.The following example uses the PtrToStringAnsi method to create a managed string from an unmanaged char array.

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);
}

Remarks

PtrToStringAnsi es útil para el cálculo de referencias personalizado o al combinar código administrado y no administrado.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Dado que este método crea una copia del contenido de la cadena no administrada, debe liberar la cadena original según corresponda.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Este método proporciona la funcionalidad opuesta de los métodos Marshal.StringToCoTaskMemAnsi y Marshal.StringToHGlobalAnsi.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

See also

PtrToStringAnsi(IntPtr, Int32)

Asigna un String, administrado, copia en él un número especificado de caracteres de una cadena ANSI no administrada y ensancha cada carácter ANSI a Unicode.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

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);
static member PtrToStringAnsi : nativeint * int -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr, len As Integer) As String

Parameters

ptr
IntPtr

Dirección del primer carácter de la cadena no administrada.The address of the first character of the unmanaged string.

len
Int32

Número de bytes de la cadena de entrada que se va a copiar.The byte count of the input string to copy.

Returns

String

Cadena administrada que contiene una copia de la cadena ANSI nativa si el valor del parámetro ptr no es null; de lo contrario, este método devuelve null.A managed string that holds a copy of the native ANSI string if the value of the ptr parameter is not null; otherwise, this method returns null.

Attributes

Exceptions

len es menor que cero.len is less than zero.

Examples

En el ejemplo siguiente se usa el método PtrToStringAnsi para crear una cadena administrada a partir de una matriz dechar no administrada.The following example uses the PtrToStringAnsi method to create a managed string from an unmanagedchar array.

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);
}

Remarks

PtrToStringAnsi es útil para el cálculo de referencias personalizado o al combinar código administrado y no administrado.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Dado que este método crea una copia del contenido de la cadena no administrada, debe liberar la cadena original según corresponda.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Este método proporciona la funcionalidad opuesta de los métodos Marshal.StringToCoTaskMemAnsi y Marshal.StringToHGlobalAnsi.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

See also

Applies to