Marshal.PtrToStringAnsi Marshal.PtrToStringAnsi Marshal.PtrToStringAnsi Marshal.PtrToStringAnsi Method

Definizione

Alloca un oggetto String gestito e vi copia tutta o parte di una stringa ANSI non gestita.Allocates a managed String and copies all or part of an unmanaged ANSI string into it.

Overload

PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr)

Copia tutti i caratteri fino al primo carattere Null da una stringa ANSI non gestita a un oggetto String gestito e trasforma ogni carattere ANSI in 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) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32)

Alloca un oggetto String gestito, vi copia un numero di caratteri specificato da una stringa ANSI non gestita e trasforma ciascun carattere ANSI nel formato 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) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr) PtrToStringAnsi(IntPtr)

Copia tutti i caratteri fino al primo carattere Null da una stringa ANSI non gestita a un oggetto String gestito e trasforma ogni carattere ANSI in 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);
static member PtrToStringAnsi : nativeint -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr) As String

Parametri

ptr
IntPtr IntPtr IntPtr IntPtr

L'indirizzo del primo carattere della stringa non gestita.The address of the first character of the unmanaged string.

Restituisce

Stringa gestita che contiene una copia della stringa ANSI non gestita.A managed string that holds a copy of the unmanaged ANSI string. Se ptr è null, il metodo restituisce una stringa Null.If ptr is null, the method returns a null string.

Esempi

Nell'esempio seguente viene usato il metodo PtrToStringAnsi per creare una stringa gestita da una matrice char non gestita.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);
}

Commenti

PtrToStringAnsi è utile per il marshalling personalizzato o per la combinazione di codice gestito e non gestito.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Poiché questo metodo crea una copia del contenuto della stringa non gestita, è necessario liberare la stringa originale nel modo appropriato.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Questo metodo fornisce la funzionalità opposta dei metodi Marshal.StringToCoTaskMemAnsi e Marshal.StringToHGlobalAnsi.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

Sicurezza

SecurityCriticalAttribute
richiede l'attendibilità totale per il chiamante immediato.requires full trust for the immediate caller. Questo membro non può essere utilizzato da codice parzialmente attendibile o trasparente.This member cannot be used by partially trusted or transparent code.

Vedi anche

PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32) PtrToStringAnsi(IntPtr, Int32)

Alloca un oggetto String gestito, vi copia un numero di caratteri specificato da una stringa ANSI non gestita e trasforma ciascun carattere ANSI nel formato 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);
static member PtrToStringAnsi : nativeint * int -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr, len As Integer) As String

Parametri

ptr
IntPtr IntPtr IntPtr IntPtr

L'indirizzo del primo carattere della stringa non gestita.The address of the first character of the unmanaged string.

len
Int32 Int32 Int32 Int32

Conteggio dei byte della stringa di input da copiare.The byte count of the input string to copy.

Restituisce

Stringa gestita contenente una copia della stringa ANSI nativa se il valore del parametro ptr non è null; in caso contrario, il metodo restituisce 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.

Eccezioni

len è minore di zero.len is less than zero.

Esempi

Nell'esempio seguente viene usato il metodo PtrToStringAnsi per creare una stringa gestita da una matrice @ no__t-1 non gestita.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);
}

Commenti

PtrToStringAnsi è utile per il marshalling personalizzato o per la combinazione di codice gestito e non gestito.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Poiché questo metodo crea una copia del contenuto della stringa non gestita, è necessario liberare la stringa originale nel modo appropriato.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Questo metodo fornisce la funzionalità opposta dei metodi Marshal.StringToCoTaskMemAnsi e Marshal.StringToHGlobalAnsi.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

Sicurezza

SecurityCriticalAttribute
richiede l'attendibilità totale per il chiamante immediato.requires full trust for the immediate caller. Questo membro non può essere utilizzato da codice parzialmente attendibile o trasparente.This member cannot be used by partially trusted or transparent code.

Vedi anche

Si applica a