Marshal.StringToHGlobalAuto(String) Метод

Определение

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

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

Параметры

s
String

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

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

IntPtr

nativeint

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

Атрибуты

Исключения

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

Примеры

В следующем примере показано, как преобразовать содержимое управляемого String класса в неуправляемую память, а затем удалить неуправляемую память по завершении.

using namespace System;
using namespace System::Runtime::InteropServices;

int main()
{
    // Create a managed string.
    String^ managedString = "Hello unmanaged world (from the managed world).";

    // Marshal the managed string to unmanaged memory.
    char*  stringPointer = (char*) Marshal::StringToHGlobalAuto(managedString).ToPointer();

    // Pass the string to an unmanaged API.

    // Always free the unmanaged string.
    Marshal::FreeHGlobal(IntPtr(stringPointer));

    return 0;
}

Комментарии

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

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

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

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