Marshal.PtrToStringAnsi 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 bir String ayırır ve yönetilmeyen ANSI (Windows üzerinde) veya UTF-8 (Unix üzerinde) dizesinin tamamını veya bir bölümünü bu dizeye kopyalar.
Aşırı Yüklemeler
PtrToStringAnsi(IntPtr) |
Yönetilmeyen bir ANSI veya UTF-8 dizesinden ilk null karaktere kadar olan tüm karakterleri yönetilen bir Stringkopyalar ve her karakteri UTF-16'ya genişleter. |
PtrToStringAnsi(IntPtr, Int32) |
Yönetilen bir Stringayırır, yönetilmeyen bir ANSI veya UTF-8 dizesinden belirtilen sayıda karakteri bu dizeye kopyalar ve her karakteri UTF-16'ya genişleter. |
PtrToStringAnsi(IntPtr)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Yönetilmeyen bir ANSI veya UTF-8 dizesinden ilk null karaktere kadar olan tüm karakterleri yönetilen bir Stringkopyalar ve her karakteri UTF-16'ya genişleter.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr);
public static string? PtrToStringAnsi (IntPtr ptr);
public static string PtrToStringAnsi (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member PtrToStringAnsi : nativeint -> string
static member PtrToStringAnsi : nativeint -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr) As String
Parametreler
- ptr
-
IntPtr
nativeint
Yönetilmeyen dizenin ilk karakterinin adresi.
Döndürülenler
Yönetilmeyen dizenin bir kopyasını tutan yönetilen dize.
ptr
null
ise yöntemi null dize döndürür.
- Öznitelikler
Örnekler
Aşağıdaki örnek, yönetilmeyen bir char
dizisinden yönetilen dize oluşturmak için PtrToStringAnsi yöntemini kullanır.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged c string.
const char * myString = "Hello managed world (from the unmanaged world)!";
// Convert the c string to a managed String.
String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
// Display the string to the console.
Console::WriteLine(myManagedString);
}
Açıklamalar
PtrToStringAnsi, özel sıralama için veya yönetilen ve yönetilmeyen kodu karıştırırken yararlıdır. Bu yöntem yönetilmeyen dizenin içeriğinin bir kopyasını oluşturduğundan, özgün dizeyi uygun şekilde serbest oluşturmanız gerekir. Bu yöntem, Marshal.StringToCoTaskMemAnsi ve Marshal.StringToHGlobalAnsi yöntemlerinin karşıt işlevselliğini sağlar.
Ayrıca bkz.
Şunlara uygulanır
PtrToStringAnsi(IntPtr, Int32)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Yönetilen bir Stringayırır, yönetilmeyen bir ANSI veya UTF-8 dizesinden belirtilen sayıda karakteri bu dizeye kopyalar ve her karakteri UTF-16'ya genişleter.
public:
static System::String ^ PtrToStringAnsi(IntPtr ptr, int len);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr, int len);
public static string PtrToStringAnsi (IntPtr ptr, int len);
[<System.Security.SecurityCritical>]
static member PtrToStringAnsi : nativeint * int -> string
static member PtrToStringAnsi : nativeint * int -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr, len As Integer) As String
Parametreler
- ptr
-
IntPtr
nativeint
Yönetilmeyen dizenin ilk karakterinin adresi.
- len
- Int32
Kopyalanacak giriş dizesinin bayt sayısı.
Döndürülenler
ptr
parametresinin değeri null
değilse yerel dizenin bir kopyasını tutan yönetilen dize; aksi takdirde, bu yöntem null
döndürür.
- Öznitelikler
Özel durumlar
len
sıfırdan küçüktür.
Örnekler
Aşağıdaki örnek, yönetilmeyen birchar
dizisinden yönetilen dize oluşturmak için PtrToStringAnsi yöntemini kullanır.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged c string.
const char * myString = "Hello managed world (from the unmanaged world)!";
// Convert the c string to a managed String.
String ^ myManagedString = Marshal::PtrToStringAnsi((IntPtr) (char *) myString);
// Display the string to the console.
Console::WriteLine(myManagedString);
}
Açıklamalar
PtrToStringAnsi, özel sıralama için veya yönetilen ve yönetilmeyen kodu karıştırırken yararlıdır. Bu yöntem yönetilmeyen dizenin içeriğinin bir kopyasını oluşturduğundan, özgün dizeyi uygun şekilde serbest oluşturmanız gerekir. Bu yöntem, Marshal.StringToCoTaskMemAnsi ve Marshal.StringToHGlobalAnsi yöntemlerinin karşıt işlevselliğini sağlar.