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


Marshal.StringToCoTaskMemUni(String) Метод

Определение

Копирует содержимое управляемого объекта типа String в блок памяти, выделенный из неуправляемого распределителя памяти для COM-задач.

public:
 static IntPtr StringToCoTaskMemUni(System::String ^ s);
[System.Security.SecurityCritical]
public static IntPtr StringToCoTaskMemUni (string s);
public static IntPtr StringToCoTaskMemUni (string? s);
public static IntPtr StringToCoTaskMemUni (string s);
[<System.Security.SecurityCritical>]
static member StringToCoTaskMemUni : string -> nativeint
static member StringToCoTaskMemUni : string -> nativeint
Public Shared Function StringToCoTaskMemUni (s As String) As IntPtr

Параметры

s
String

Копируемая управляемая строка.

Возвращаемое значение

IntPtr

nativeint

Целое число, представляющее указатель на блок памяти, выделенный для строки, или значение 0, если строка s имеет значение null.

Атрибуты

Исключения

Параметр s превышает максимальную длину, разрешенную операционной системой.

Не хватает памяти.

Комментарии

StringToCoTaskMemUni полезно для пользовательского маршалинга или для использования при смешении управляемого и неуправляемого кода. Так как этот метод выделяет неуправляемую память, необходимую для строки, всегда освобождайте память путем вызова Marshal.FreeCoTaskMem. Этот метод предоставляет противоположные функциональные возможности Marshal.PtrToStringUni. Символы строки копируются как символы Юникода.

Этот API отражает определение Юникода в Windows, которое представляет собой 2-байтовую кодировку UTF-16. На многих платформах, отличных от Windows, wchar_t тип данных равен 4, а не 2 байтам. Обратитесь к компилятору, чтобы проверить, можно ли wchar_t использовать или char16_t следует использовать вместо него.

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

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