Marshal.StringToHGlobalAuto(String) Yöntem
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yönetilen String bir bellek içeriğini yönetilmeyen belleğe kopyalar ve gerekirse ANSI biçimine dönüştürür.
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
- s
- String
Kopyalanacak yönetilen dize.
nativeint
Yönetilmeyen bellekteki adres, dizenin kopyalandığı yere veya ise s
null
0.
- Öznitelikler
Kullanılabilir bellek yetersiz.
Aşağıdaki örnekte, yönetilen String bir sınıfın içeriğini yönetilmeyen belleğe dönüştürme ve bittiğinde yönetilmeyen belleğin atılması gösterilmektedir.
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;
}
StringToHGlobalAuto özel hazırlama için veya yönetilen ve yönetilmeyen kodu karıştırırken kullanmak için kullanışlıdır. Bu yöntem bir dize için gereken yönetilmeyen belleği ayırdığından, çağırarak FreeHGlobalbelleği her zaman boşaltın. Bu yöntem, işlevinin tersini Marshal.PtrToStringAutosağlar.
Bu yöntem eklenmiş null karakterleri kopyalar ve sonlandırıcı bir null karakter içerir.
Ürün | Sürümler |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: