Marshal.PtrToStringAnsi Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 .