Marshal.PtrToStringAuto Metoda

Definicja

Przydziela zarządzany String i kopiuje do niego wszystkie lub części niezarządzanego ciągu.

Przeciążenia

PtrToStringAuto(IntPtr)

Przydziela zarządzany String i kopiuje do niego wszystkie znaki do pierwszego znaku null z ciągu przechowywanego w niezarządzanej pamięci.

PtrToStringAuto(IntPtr, Int32)

Przydziela zarządzaną String i kopiuje do niej określoną liczbę znaków z ciągu przechowywanego w niezarządzanej pamięci.

PtrToStringAuto(IntPtr)

Źródło:
Marshal.Unix.cs
Źródło:
Marshal.Unix.cs
Źródło:
Marshal.Unix.cs

Przydziela zarządzany String i kopiuje do niego wszystkie znaki do pierwszego znaku null z ciągu przechowywanego w niezarządzanej pamięci.

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

W przypadku platform Unicode adres pierwszego znaku Unicode.

-lub-

W przypadku platform ANSI adres pierwszego znaku ANSI.

Zwraca

Ciąg zarządzany, który przechowuje kopię niezarządzanego ciągu, jeśli wartość parametru ptr nie nulljest ; w przeciwnym razie ta metoda zwraca wartość null.

Atrybuty

Uwagi

Jeśli bieżąca platforma to Unicode, każdy znak ANSI jest rozszerzany na znak Unicode, a ta metoda wywołuje metodę PtrToStringUni. W przeciwnym razie ta metoda wywołuje metodę PtrToStringAnsi.

PtrToStringAuto jest przydatna w przypadku marshalingu niestandardowego lub podczas mieszania zarządzanego i niezarządzanych kodu. Ponieważ ta metoda tworzy kopię zawartości niezarządzanego ciągu, musisz zwolnić oryginalny ciąg zgodnie z potrzebami. PtrToStringAuto udostępnia przeciwną funkcjonalność Marshal.StringToCoTaskMemAuto metod i Marshal.StringToHGlobalAuto .

Zobacz też

Dotyczy

PtrToStringAuto(IntPtr, Int32)

Źródło:
Marshal.Unix.cs
Źródło:
Marshal.Unix.cs
Źródło:
Marshal.Unix.cs

Przydziela zarządzaną String i kopiuje do niej określoną liczbę znaków z ciągu przechowywanego w niezarządzanej pamięci.

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

W przypadku platform Unicode adres pierwszego znaku Unicode.

-lub-

W przypadku platform ANSI adres pierwszego znaku ANSI.

len
Int32

Liczba znaków do skopiowania.

Zwraca

Ciąg zarządzany, który zawiera kopię ciągu natywnego, jeśli wartość ptr parametru nie nulljest ; w przeciwnym razie ta metoda zwraca wartość null.

Atrybuty

Wyjątki

Parametr len ma wartość niższą niż zero.

Uwagi

Na platformach Unicode ta metoda wywołuje metodę PtrToStringUni; na platformach ANSI wywołuje metodę PtrToStringAnsi. Przed wywołaniami tych metod nie są wykonywane żadne przekształcenia.

PtrToStringAuto jest przydatna w przypadku marshalingu niestandardowego lub podczas mieszania zarządzanego i niezarządzanych kodu. Ponieważ ta metoda tworzy kopię zawartości niezarządzanego ciągu, musisz zwolnić oryginalny ciąg zgodnie z potrzebami. PtrToStringAuto udostępnia przeciwną funkcjonalność elementów Marshal.StringToCoTaskMemAuto i Marshal.StringToHGlobalAuto.

Zobacz też

Dotyczy