Marshal.StringToHGlobalAuto(String) Methode

Definitie

Kopieert de inhoud van een beheerd String geheugen naar onbeheerd geheugen en converteert indien nodig naar ANSI-indeling.

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

Parameters

s
String

Een beheerde tekenreeks die moet worden gekopieerd.

Retouren

IntPtr

nativeint

Het adres, in onbeheerd geheugen, naar de locatie waar de tekenreeks is gekopieerd, of 0 als s dat het is null.

Kenmerken

Uitzonderingen

Er is onvoldoende geheugen beschikbaar.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de inhoud van een beheerde String klasse converteert naar onbeheerd geheugen en vervolgens het niet-beheerde geheugen kunt verwijderen wanneer u klaar bent.

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;
}

Opmerkingen

StringToHGlobalAuto is handig voor aangepaste marshaling of voor gebruik bij het combineren van beheerde en onbeheerde code. Omdat met deze methode het niet-beheerde geheugen wordt toegewezen dat is vereist voor een tekenreeks, kunt u altijd het geheugen vrijmaken door aan te roepen FreeHGlobal. Deze methode biedt de tegenovergestelde functionaliteit van Marshal.PtrToStringAuto.

Met deze methode worden ingesloten null-tekens gekopieerd en wordt een null-teken beƫindigd.

Van toepassing op

Zie ook