Share via


Marshal.PtrToStringAnsi Metode

Definisi

Mengalokasikan String terkelola dan menyalin semua atau sebagian dari string ANSI (pada Windows) atau UTF-8 (pada Unix) yang tidak dikelola ke dalamnya.

Overload

PtrToStringAnsi(IntPtr)

Menyalin semua karakter hingga karakter null pertama dari string ANSI atau UTF-8 yang Stringtidak dikelola ke terkelola, dan memperluas setiap karakter menjadi UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Mengalokasikan Stringterkelola , menyalin sejumlah karakter tertentu dari string ANSI atau UTF-8 yang tidak dikelola ke dalamnya, dan memperluas setiap karakter menjadi UTF-16.

PtrToStringAnsi(IntPtr)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.cs

Menyalin semua karakter hingga karakter null pertama dari string ANSI atau UTF-8 yang Stringtidak dikelola ke terkelola, dan memperluas setiap karakter menjadi UTF-16.

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

Parameter

ptr
IntPtr

nativeint

Alamat karakter pertama dari string yang tidak dikelola.

Mengembalikan

String terkelola yang menyimpan salinan string yang tidak dikelola. Jika ptr adalah null, metode mengembalikan string null.

Atribut

Contoh

Contoh berikut menggunakan PtrToStringAnsi metode untuk membuat string terkelola dari array yang tidak dikelola char .

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);
}

Keterangan

PtrToStringAnsi berguna untuk marshaling kustom atau saat mencampur kode yang dikelola dan tidak dikelola. Karena metode ini membuat salinan konten string yang tidak dikelola, Anda harus membebaskan string asli yang sesuai. Metode ini menyediakan fungsionalitas yang berlawanan dari Marshal.StringToCoTaskMemAnsi metode dan Marshal.StringToHGlobalAnsi .

Lihat juga

Berlaku untuk

PtrToStringAnsi(IntPtr, Int32)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.cs

Mengalokasikan Stringterkelola , menyalin sejumlah karakter tertentu dari string ANSI atau UTF-8 yang tidak dikelola ke dalamnya, dan memperluas setiap karakter menjadi UTF-16.

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

Parameter

ptr
IntPtr

nativeint

Alamat karakter pertama dari string yang tidak dikelola.

len
Int32

Jumlah byte string input untuk disalin.

Mengembalikan

String terkelola yang menyimpan salinan string asli jika nilai ptr parameter tidak ; jika tidak null, metode ini mengembalikan null.

Atribut

Pengecualian

len kurang dari nol.

Contoh

Contoh berikut menggunakan PtrToStringAnsi metode untuk membuat string terkelola dari array yang tidak dikelolachar .

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);
}

Keterangan

PtrToStringAnsi berguna untuk marshaling kustom atau saat mencampur kode yang dikelola dan tidak dikelola. Karena metode ini membuat salinan konten string yang tidak dikelola, Anda harus membebaskan string asli yang sesuai. Metode ini menyediakan fungsionalitas yang berlawanan dari Marshal.StringToCoTaskMemAnsi metode dan Marshal.StringToHGlobalAnsi .

Lihat juga

Berlaku untuk