Marshal.PtrToStringAuto Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выделяет управляемый объект типа String и частично или полностью копирует в него неуправляемую строку.
Перегрузки
PtrToStringAuto(IntPtr) |
Выделяет управляемый объект String и копирует в него все знаки до первого пустого знака из строки, хранящейся в неуправляемой памяти. |
PtrToStringAuto(IntPtr, Int32) |
Выделяет управляемый объект String и копирует в него заданное число знаков из строки, сохраненной в неуправляемой памяти. |
PtrToStringAuto(IntPtr)
- Исходный код:
- Marshal.Unix.cs
- Исходный код:
- Marshal.Unix.cs
- Исходный код:
- Marshal.Unix.cs
Выделяет управляемый объект String и копирует в него все знаки до первого пустого знака из строки, хранящейся в неуправляемой памяти.
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
Параметры
- ptr
-
IntPtr
nativeint
Для платформ Юникода это адрес первого символа Юникода.
-или-
Для платформ ANSI это адрес первого символа ANSI.
Возвращаемое значение
Управляемая строка, содержащая копию неуправляемой строки, если значение параметра ptr
не равно null
. В противном случае этот метод возвращает значение null
.
- Атрибуты
Комментарии
Если текущей платформой является Юникод, каждый символ ANSI расширяется до символа Юникода, и этот метод вызывает PtrToStringUni. В противном случае этот метод вызывает PtrToStringAnsi.
PtrToStringAuto полезно для пользовательского маршалинга или при смешении управляемого и неуправляемого кода. Так как этот метод создает копию содержимого неуправляемой строки, исходную строку необходимо освободить соответствующим образом. PtrToStringAuto предоставляет противоположные функциональные Marshal.StringToCoTaskMemAuto возможности методов и Marshal.StringToHGlobalAuto .
См. также раздел
- StringToCoTaskMemAuto(String)
- StringToHGlobalAuto(String)
- PtrToStringUni(IntPtr, Int32)
- PtrToStringAnsi(IntPtr)
Применяется к
PtrToStringAuto(IntPtr, Int32)
- Исходный код:
- Marshal.Unix.cs
- Исходный код:
- Marshal.Unix.cs
- Исходный код:
- Marshal.Unix.cs
Выделяет управляемый объект String и копирует в него заданное число знаков из строки, сохраненной в неуправляемой памяти.
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
Параметры
- ptr
-
IntPtr
nativeint
Для платформ Юникода это адрес первого символа Юникода.
-или-
Для платформ ANSI это адрес первого символа ANSI.
- len
- Int32
Число символов для копирования.
Возвращаемое значение
Управляемая строка, хранящая копию исходной строки, если значение параметра ptr
не равно нулю null
; в противном случае — значение null
.
- Атрибуты
Исключения
Значение параметра len
меньше нуля.
Комментарии
На платформах Юникода этот метод вызывает PtrToStringUni; на платформах ANSI вызывает .PtrToStringAnsi Преобразования не выполняются до вызова этих методов.
PtrToStringAuto полезно для пользовательского маршалинга или при смешении управляемого и неуправляемого кода. Так как этот метод создает копию содержимого неуправляемой строки, исходную строку необходимо освободить соответствующим образом. PtrToStringAuto предоставляет противоположные функциональные возможности Marshal.StringToCoTaskMemAuto и Marshal.StringToHGlobalAuto.
См. также раздел
- StringToCoTaskMemAuto(String)
- StringToHGlobalAuto(String)
- PtrToStringUni(IntPtr, Int32)
- PtrToStringAnsi(IntPtr)