Поделиться через


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 .

См. также раздел

Применяется к

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.

См. также раздел

Применяется к