Marshal.StringToHGlobalAuto(String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zkopíruje obsah spravovaného String objektu do nespravované paměti a v případě potřeby ho převede do formátu 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
Parametry
- s
- String
Spravovaný řetězec, který se má zkopírovat.
Návraty
nativeint
Adresa v nespravované paměti, do které byl řetězec zkopírován, nebo 0, pokud s
je null
.
- Atributy
Výjimky
Není k dispozici dostatek paměti.
Příklady
Následující příklad ukazuje, jak převést obsah spravované String třídy na nespravovanou paměť a poté odstranit nespravovanou paměť po dokončení.
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;
}
Poznámky
StringToHGlobalAuto je vhodný pro vlastní zařazování nebo pro použití při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda přidělí nespravovanou paměť potřebnou pro řetězec, vždy uvolněte paměť voláním FreeHGlobal. Tato metoda poskytuje opačné funkce než Marshal.PtrToStringAuto.
Tato metoda zkopíruje vložené znaky null a obsahuje ukončující znak null.
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro