Marshal.PtrToStringAuto Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przydziela zarządzany i String kopiuje do niego wszystkie lub części niezarządzanego ciągu.
Przeciążenia
PtrToStringAuto(IntPtr) |
Przydziela zarządzany i String kopiuje 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 niego 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 i String kopiuje 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 zawiera kopię niezarządzanego ciągu, jeśli wartość parametru ptr
nie null
jest ; w przeciwnym razie ta metoda zwraca wartość null
.
- Atrybuty
Uwagi
Jeśli bieżąca platforma to Unicode, każdy znak ANSI jest rozszerzony na znak Unicode, a ta metoda wywołuje PtrToStringUnimetodę . W przeciwnym razie ta metoda wywołuje PtrToStringAnsimetodę .
PtrToStringAuto jest przydatne w przypadku niestandardowego marshalingu lub podczas mieszania zarządzanego i niezarządzanych kodu. Ponieważ ta metoda tworzy kopię zawartości niezarządzanego ciągu, należy zwolnić oryginalny ciąg odpowiednio. PtrToStringAuto udostępnia przeciwną funkcjonalność Marshal.StringToCoTaskMemAuto metod i Marshal.StringToHGlobalAuto .
Zobacz też
- StringToCoTaskMemAuto(String)
- StringToHGlobalAuto(String)
- PtrToStringUni(IntPtr, Int32)
- PtrToStringAnsi(IntPtr)
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 niego 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 null
jest ; 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 przydatne w przypadku niestandardowego marshalingu lub podczas mieszania zarządzanego i niezarządzanych kodu. Ponieważ ta metoda tworzy kopię zawartości niezarządzanego ciągu, należy zwolnić oryginalny ciąg odpowiednio. PtrToStringAuto udostępnia przeciwną funkcjonalność i Marshal.StringToCoTaskMemAutoMarshal.StringToHGlobalAuto.
Zobacz też
- StringToCoTaskMemAuto(String)
- StringToHGlobalAuto(String)
- PtrToStringUni(IntPtr, Int32)
- PtrToStringAnsi(IntPtr)