Marshal.StringToHGlobalAuto(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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.