Marshal.StringToHGlobalUni(String) Метод

Определение

Копирует содержимое управляемого объекта String в неуправляемую память.

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

Параметры

s
String

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

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

IntPtr

nativeint

Адрес в неуправляемой памяти, куда скопирована строка s, или значение 0, если строка s имеет значение null.

Атрибуты

Исключения

Метод не может выделить в куче достаточное количество динамической памяти, присущей данному объекту.

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

Комментарии

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

Этот метод копирует внедренные символы NULL и включает в себя завершающий символ NULL.

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

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

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