Condividi tramite


Marshal.PtrToStringAuto Metodo

Definizione

Alloca un oggetto String gestito e vi copia tutta o parte di una stringa non gestita.

Overload

PtrToStringAuto(IntPtr)

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere null da una stringa archiviata nella memoria non gestita.

PtrToStringAuto(IntPtr, Int32)

Alloca un oggetto String gestito e vi copia il numero di caratteri specificato da una stringa archiviata nella memoria non gestita.

PtrToStringAuto(IntPtr)

Origine:
Marshal.Unix.cs
Origine:
Marshal.Unix.cs
Origine:
Marshal.Unix.cs

Alloca un oggetto String gestito e vi copia tutti i caratteri fino al primo carattere null da una stringa archiviata nella memoria non gestita.

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

Parametri

ptr
IntPtr

nativeint

Per le piattaforme Unicode, l'indirizzo del primo carattere Unicode.

-oppure-

Per le piattaforme ANSI, l'indirizzo del primo carattere ANSI.

Restituisce

Stringa gestita che contiene una copia della stringa non gestita se il valore del parametro ptr non è null; in caso contrario, questo metodo restituisce null.

Attributi

Commenti

Se la piattaforma corrente è Unicode, ogni carattere ANSI viene esteso a un carattere Unicode e questo metodo chiama PtrToStringUni. In caso contrario, questo metodo chiama PtrToStringAnsi.

PtrToStringAuto è utile per il marshalling personalizzato o quando si combina codice gestito e non gestito. Poiché questo metodo crea una copia del contenuto della stringa non gestita, è necessario liberare la stringa originale in base alle esigenze. PtrToStringAuto fornisce la funzionalità opposta dei Marshal.StringToCoTaskMemAuto metodi e Marshal.StringToHGlobalAuto .

Vedi anche

Si applica a

PtrToStringAuto(IntPtr, Int32)

Origine:
Marshal.Unix.cs
Origine:
Marshal.Unix.cs
Origine:
Marshal.Unix.cs

Alloca un oggetto String gestito e vi copia il numero di caratteri specificato da una stringa archiviata nella memoria non gestita.

public:
 static System::String ^ PtrToStringAuto(IntPtr ptr, int len);
public static string? PtrToStringAuto (IntPtr ptr, int len);
public static string PtrToStringAuto (IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringAuto (IntPtr ptr, int len);
static member PtrToStringAuto : nativeint * int -> string
[<System.Security.SecurityCritical>]
static member PtrToStringAuto : nativeint * int -> string
Public Shared Function PtrToStringAuto (ptr As IntPtr, len As Integer) As String

Parametri

ptr
IntPtr

nativeint

Per le piattaforme Unicode, l'indirizzo del primo carattere Unicode.

-oppure-

Per le piattaforme ANSI, l'indirizzo del primo carattere ANSI.

len
Int32

Numero di caratteri da copiare.

Restituisce

Stringa gestita che contiene una copia della stringa nativa se il valore del parametro ptr non è null; in caso contrario, questo metodo restituisce null.

Attributi

Eccezioni

len è minore di zero.

Commenti

Nelle piattaforme Unicode, questo metodo chiama PtrToStringUni; nelle piattaforme ANSI chiama PtrToStringAnsi. Non vengono eseguite trasformazioni prima che questi metodi vengano chiamati.

PtrToStringAuto è utile per il marshalling personalizzato o quando si combina codice gestito e non gestito. Poiché questo metodo crea una copia del contenuto della stringa non gestita, è necessario liberare la stringa originale in base alle esigenze. PtrToStringAuto fornisce la funzionalità opposta di Marshal.StringToCoTaskMemAuto e Marshal.StringToHGlobalAuto.

Vedi anche

Si applica a