Compartir a través de


Método Marshal.PtrToStringAnsi (IntPtr, Int32)

 

Publicado: noviembre de 2016

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.

Espacio de nombres:   System.Runtime.InteropServices
Ensamblado:  mscorlib (en mscorlib.dll)

Sintaxis

[SecurityCriticalAttribute]
public static string PtrToStringAnsi(
    IntPtr ptr,
    int len
)
public:
[SecurityCriticalAttribute]
static String^ PtrToStringAnsi(
    IntPtr ptr,
    int len
)
[<SecurityCriticalAttribute>]
static member PtrToStringAnsi : 
        ptr:nativeint *
        len:int -> string
<SecurityCriticalAttribute>
Public Shared Function PtrToStringAnsi (
    ptr As IntPtr,
    len As Integer
) As String

Parámetros

  • ptr
    Type: System.IntPtr

    Dirección del primer carácter de la cadena no administrada.

  • len
    Type: System.Int32

    Número de bytes de la cadena de entrada que se va a copiar.

Valor devuelto

Type: System.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.

Excepciones

Exception Condition
ArgumentException

len es menor que cero.

Comentarios

PtrToStringAnsi es útil para el cálculo de referencias personalizado o cuando se combina 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 a la de la Marshal.StringToCoTaskMemAnsi y Marshal.StringToHGlobalAnsi métodos.

Ejemplos

En el ejemplo siguiente se utiliza el PtrToStringAnsi para crear una cadena administrada de no administradochar matriz.

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

Seguridad

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Información de versión

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1

Ver también

StringToCoTaskMemAnsi
StringToHGlobalAnsi
PtrToStringAnsi Sobrecarga
Clase Marshal
Espacio de nombres System.Runtime.InteropServices

Volver al principio