Marshal.PtrToStringAnsi Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidělí spravovaný String řetězec a zkopíruje do něj celý řetězec ANSI (ve Windows) nebo UTF-8 (v Unixu) nebo jeho část.
Přetížení
PtrToStringAnsi(IntPtr) |
Zkopíruje všechny znaky až po první znak null z nespravovaného řetězce ANSI nebo UTF-8 do spravovaného Stringznaku a rozšíří každý znak na UTF-16. |
PtrToStringAnsi(IntPtr, Int32) |
Přidělí spravovaný Stringobjekt , zkopíruje do něj zadaný počet znaků z nespravovaného řetězce ANSI nebo UTF-8 a rozšíří každý znak na UTF-16. |
PtrToStringAnsi(IntPtr)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
Zkopíruje všechny znaky až po první znak null z nespravovaného řetězce ANSI nebo UTF-8 do spravovaného Stringznaku a rozšíří každý znak na 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
Parametry
- ptr
-
IntPtr
nativeint
Adresa prvního znaku nespravovaného řetězce.
Návraty
Spravovaný řetězec, který obsahuje kopii nespravovaného řetězce. Pokud ptr
je null
, vrátí metoda řetězec null.
- Atributy
Příklady
Následující příklad používá metodu PtrToStringAnsi k vytvoření spravovaného řetězce z nespravovaného char
pole.
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);
}
Poznámky
PtrToStringAnsi je užitečná pro vlastní zařazování nebo při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda vytvoří kopii obsahu nespravovaného řetězce, musíte podle potřeby uvolnit původní řetězec. Tato metoda poskytuje opačné funkce Marshal.StringToCoTaskMemAnsi než metody a Marshal.StringToHGlobalAnsi .
Viz také
Platí pro
PtrToStringAnsi(IntPtr, Int32)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
Přidělí spravovaný Stringobjekt , zkopíruje do něj zadaný počet znaků z nespravovaného řetězce ANSI nebo UTF-8 a rozšíří každý znak na 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
Parametry
- ptr
-
IntPtr
nativeint
Adresa prvního znaku nespravovaného řetězce.
- len
- Int32
Počet bajtů vstupního řetězce, který se má zkopírovat.
Návraty
Spravovaný řetězec, který obsahuje kopii nativního řetězce, pokud hodnota parametru ptr
není null
; v opačném případě tato metoda vrátí null
.
- Atributy
Výjimky
Hodnota len
je menší než nula.
Příklady
Následující příklad používá metodu PtrToStringAnsi k vytvoření spravovaného řetězce z nespravovanéhochar
pole.
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);
}
Poznámky
PtrToStringAnsi je užitečná pro vlastní zařazování nebo při kombinování spravovaného a nespravovaného kódu. Vzhledem k tomu, že tato metoda vytvoří kopii obsahu nespravovaného řetězce, musíte podle potřeby uvolnit původní řetězec. Tato metoda poskytuje opačné funkce Marshal.StringToCoTaskMemAnsi než metody a Marshal.StringToHGlobalAnsi .