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 String bir ayırır ve yönetilmeyen ANSI (Windows üzerinde) veya UTF-8 (Unix üzerinde) dizesinin tamamını veya bir kısmı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 Stringbir dizeye kopyalar ve her karakteri UTF-16'ya genişleter. |
PtrToStringAnsi(IntPtr, Int32) |
Yönetilen Stringbir ayı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 Stringbir dizeye kopyalar 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. ise ptr
null
, yöntemi null dize döndürür.
- Öznitelikler
Örnekler
Aşağıdaki örnek, yönetilmeyen char
bir diziden yönetilen dize oluşturmak için yöntemini kullanırPtrToStringAnsi.
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 hazırlama için veya yönetilen ve yönetilmeyen kodu karıştırırken kullanışlıdır. Bu yöntem yönetilmeyen dizenin içeriğinin bir kopyasını oluşturduğundan, özgün dizeyi uygun şekilde serbest bıraktırmalısınız. Bu yöntem, ve Marshal.StringToHGlobalAnsi yöntemlerinin Marshal.StringToCoTaskMemAnsi ters 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 Stringbir ayı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
Parametresinin değeri ptr
değilse null
, yerel dizenin bir kopyasını tutan yönetilen dize; aksi takdirde, bu yöntem döndürür null
.
- Öznitelikler
Özel durumlar
len
, sıfırdan küçüktür.
Örnekler
Aşağıdaki örnek, yönetilmeyenchar
bir diziden yönetilen dize oluşturmak için yöntemini kullanırPtrToStringAnsi.
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 hazırlama için veya yönetilen ve yönetilmeyen kodu karıştırırken kullanışlıdır. Bu yöntem yönetilmeyen dizenin içeriğinin bir kopyasını oluşturduğundan, özgün dizeyi uygun şekilde serbest bıraktırmalısınız. Bu yöntem, ve Marshal.StringToHGlobalAnsi yöntemlerinin Marshal.StringToCoTaskMemAnsi ters işlevselliğini sağlar.