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.IntPtrDirección del primer carácter de la cadena no administrada.
len
Type: System.Int32Nú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
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