Marshal.PtrToStringAnsi Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выделяет управляемый объект String и частично или целиком копирует в него неуправляемую строку ANSI (в Windows) или UTF-8 (в Unix).
Перегрузки
PtrToStringAnsi(IntPtr) |
Копирует все символы вплоть до первого пустого из неуправляемой строки ANSI или UTF-8 в управляемый объект String и преобразует каждый символ в UTF-16. |
PtrToStringAnsi(IntPtr, Int32) |
Выделяет управляемый объект типа String, копирует в него заданное число символов из неуправляемой строки ANSI или UTF-8 и преобразует каждый символ в UTF-16. |
PtrToStringAnsi(IntPtr)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Копирует все символы вплоть до первого пустого из неуправляемой строки ANSI или UTF-8 в управляемый объект String и преобразует каждый символ в UTF-16.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr);
public static string? PtrToStringAnsi (IntPtr ptr);
public static string PtrToStringAnsi (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member PtrToStringAnsi : nativeint -> string
static member PtrToStringAnsi : nativeint -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr) As String
Параметры
- ptr
-
IntPtr
nativeint
Адрес первого символа в неуправляемой строке.
Возвращаемое значение
Управляемая строка, содержащая копию неуправляемой строки. Если параметр ptr
равен null
, метод возвращает пустую строку.
- Атрибуты
Примеры
В следующем примере метод используется для PtrToStringAnsi создания управляемой строки из неуправляемого массива char
.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged c string.
const char * myString = "Hello managed world (from the unmanaged world)!";
// Convert the c string to a managed String.
String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
// Display the string to the console.
Console::WriteLine(myManagedString);
}
Комментарии
PtrToStringAnsi полезно для пользовательского маршалинга или при смешении управляемого и неуправляемого кода. Так как этот метод создает копию содержимого неуправляемой строки, исходную строку необходимо освободить соответствующим образом. Этот метод предоставляет противоположные функциональные Marshal.StringToCoTaskMemAnsi возможности методов и Marshal.StringToHGlobalAnsi .
См. также раздел
Применяется к
PtrToStringAnsi(IntPtr, Int32)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Выделяет управляемый объект типа String, копирует в него заданное число символов из неуправляемой строки ANSI или UTF-8 и преобразует каждый символ в UTF-16.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr, int len);
public static string PtrToStringAnsi (IntPtr ptr, int len);
[<System.Security.SecurityCritical>]
static member PtrToStringAnsi : nativeint * int -> string
static member PtrToStringAnsi : nativeint * int -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr, len As Integer) As String
Параметры
- ptr
-
IntPtr
nativeint
Адрес первого символа в неуправляемой строке.
- len
- Int32
Копируемое количество байтов исходной строки.
Возвращаемое значение
Управляемая строка, хранящая копию исходной строки, если значение параметра ptr
не равно нулю null
; в противном случае — значение null
.
- Атрибуты
Исключения
Значение параметра len
меньше нуля.
Примеры
В следующем примере метод используется для PtrToStringAnsi создания управляемой строки из неуправляемого массиваchar
.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged c string.
const char * myString = "Hello managed world (from the unmanaged world)!";
// Convert the c string to a managed String.
String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
// Display the string to the console.
Console::WriteLine(myManagedString);
}
Комментарии
PtrToStringAnsi полезно для пользовательского маршалинга или при смешении управляемого и неуправляемого кода. Так как этот метод создает копию содержимого неуправляемой строки, исходную строку необходимо освободить соответствующим образом. Этот метод предоставляет противоположные функциональные Marshal.StringToCoTaskMemAnsi возможности методов и Marshal.StringToHGlobalAnsi .