Marshal.StringToHGlobalAuto(String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyalin konten yang dikelola String ke dalam memori yang tidak dikelola, mengonversi ke format ANSI jika diperlukan.
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
Parameter
- s
- String
String terkelola yang akan disalin.
Mengembalikan
nativeint
Alamat, dalam memori yang tidak dikelola, ke tempat string disalin, atau 0 jika s
adalah null
.
- Atribut
Pengecualian
Tidak tersedia cukup memori.
Contoh
Contoh berikut menunjukkan cara mengonversi konten String kelas terkelola ke memori yang tidak dikelola lalu membuang memori yang tidak dikelola setelah selesai.
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;
}
Keterangan
StringToHGlobalAuto berguna untuk marshaling kustom atau untuk digunakan saat mencampur kode terkelola dan tidak terkelola. Karena metode ini mengalokasikan memori tidak terkelola yang diperlukan untuk string, selalu bebaskan memori dengan memanggil FreeHGlobal. Metode ini menyediakan fungsionalitas yang berlawanan dari Marshal.PtrToStringAuto.
Metode ini menyalin karakter null yang disematkan, dan menyertakan karakter null yang mengakhiri.