Aracılığıyla paylaş


Marshal.PtrToStringAnsi Yöntem

Tanım

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 nullise 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 nulldeğilse yerel dizenin bir kopyasını tutan yönetilen dize; aksi takdirde, bu yöntem nulldö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.

Ayrıca bkz.

Şunlara uygulanır