Sdílet prostřednictvím


Marshal.PtrToStringAuto Metoda

Definice

Přidělí spravovaný String a zkopíruje do něj celý nebo část nespravovaného řetězce.

Přetížení

PtrToStringAuto(IntPtr)

Přidělí spravované String a zkopíruje do něj všechny znaky až po první znak null z řetězce uloženého v nespravované paměti.

PtrToStringAuto(IntPtr, Int32)

Přidělí spravovaný String a zkopíruje do něj zadaný počet znaků z řetězce uloženého v nespravované paměti.

PtrToStringAuto(IntPtr)

Zdroj:
Marshal.Unix.cs
Zdroj:
Marshal.Unix.cs
Zdroj:
Marshal.Unix.cs

Přidělí spravované String a zkopíruje do něj všechny znaky až po první znak null z řetězce uloženého v nespravované paměti.

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

Parametry

ptr
IntPtr

nativeint

Pro platformy Unicode adresa prvního znaku Unicode.

-nebo-

U platforem ANSI adresa prvního znaku ANSI.

Návraty

Spravovaný řetězec, který obsahuje kopii nespravovaného řetězce, pokud hodnota parametru ptr není null; v opačném případě tato metoda vrátí null.

Atributy

Poznámky

Pokud je aktuální platforma Unicode, každý znak ANSI je rozšířen na znak Unicode a tato metoda volá PtrToStringUni. V opačném případě tato metoda volá PtrToStringAnsi.

PtrToStringAuto je užitečná pro vlastní zařazování nebo při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda vytvoří kopii obsahu nespravovaného řetězce, musíte podle potřeby uvolnit původní řetězec. PtrToStringAuto poskytuje opačné funkce Marshal.StringToCoTaskMemAuto než metody a Marshal.StringToHGlobalAuto .

Viz také

Platí pro

PtrToStringAuto(IntPtr, Int32)

Zdroj:
Marshal.Unix.cs
Zdroj:
Marshal.Unix.cs
Zdroj:
Marshal.Unix.cs

Přidělí spravovaný String a zkopíruje do něj zadaný počet znaků z řetězce uloženého v nespravované paměti.

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

Parametry

ptr
IntPtr

nativeint

Pro platformy Unicode adresa prvního znaku Unicode.

-nebo-

U platforem ANSI adresa prvního znaku ANSI.

len
Int32

Počet znaků, které se mají zkopírovat.

Návraty

Spravovaný řetězec, který obsahuje kopii nativního řetězce, pokud hodnota parametru ptr není null; v opačném případě tato metoda vrátí null.

Atributy

Výjimky

Hodnota len je menší než nula.

Poznámky

Na platformách Unicode tato metoda volá PtrToStringUni. Na platformách ANSI volá PtrToStringAnsi. Před zavolání těchto metod nejsou provedeny žádné transformace.

PtrToStringAuto je užitečná pro vlastní zařazování nebo při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda vytvoří kopii obsahu nespravovaného řetězce, musíte podle potřeby uvolnit původní řetězec. PtrToStringAuto poskytuje opačnou funkci než Marshal.StringToCoTaskMemAuto a Marshal.StringToHGlobalAuto.

Viz také

Platí pro