Condividi tramite


Marshal.StringToHGlobalAuto(String) Metodo

Definizione

Copia il contenuto di un oggetto String gestito nella memoria non gestita, effettuando, se necessario, la conversione nel formato 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

Parametri

s
String

Stringa gestita da copiare.

Restituisce

IntPtr

nativeint

Indirizzo, nella memoria non gestita, in cui è stata copiata la stringa, oppure 0 se s è null.

Attributi

Eccezioni

La memoria disponibile è insufficiente.

Esempio

Nell'esempio seguente viene illustrato come convertire il contenuto di una classe gestita in memoria non gestita e quindi eliminare la memoria non gestita String al termine.

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

Commenti

StringToHGlobalAuto è utile per il marshalling personalizzato o per l'uso durante la combinazione di codice gestito e non gestito. Poiché questo metodo alloca la memoria non gestita necessaria per una stringa, liberare sempre la memoria chiamando FreeHGlobal. Questo metodo fornisce la funzionalità opposta di Marshal.PtrToStringAuto.

Questo metodo copia i caratteri Null incorporati e include un carattere null di terminazione.

Si applica a

Vedi anche