Marshal.StringToHGlobalAuto(String) Yöntem
Tanım
Ö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 dosyanın 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
Parametreler
- s
- String
Kopyalanacak yönetilen dize.
Döndürülenler
nativeint
Yönetilmeyen bellekteki adres, dizenin kopyalandığı yere veya ise s
null
0.
- Öznitelikler
Özel durumlar
Kullanılabilir bellek yetersiz.
Örnekler
Aşağıdaki örnek, yönetilen String bir sınıfın içeriğini yönetilmeyen belleğe dönüştürmeyi ve bittiğinde yönetilmeyen belleği atmayı gösterir.
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;
}
Açıklamalar
StringToHGlobalAuto özel hazırlama için veya yönetilen ve yönetilmeyen kodu karıştırırken kullanmak için yararlı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 tam tersini Marshal.PtrToStringAutosağlar.
Bu yöntem, katıştırılmış null karakterleri kopyalar ve sonlandırıcı bir null karakter içerir.
Şunlara uygulanır
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin