Marshal.PtrToStringAnsi Méthode

Définition

Alloue un objet String managé et y copie la totalité ou une partie d'une chaîne ANSI non managée.Allocates a managed String and copies all or part of an unmanaged ANSI string into it.

Surcharges

PtrToStringAnsi(IntPtr)

Copie tous les caractères jusqu'au premier caractère null d'une chaîne ANSI non managée vers un String managé, puis convertit chaque caractère ANSI en Unicode.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr, Int32)

Alloue un objet String managé, copie un nombre spécifié de caractères d'une chaîne ANSI non managée dans celui-ci et élargit chaque caractère ANSI au format Unicode.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

PtrToStringAnsi(IntPtr)

Copie tous les caractères jusqu'au premier caractère null d'une chaîne ANSI non managée vers un String managé, puis convertit chaque caractère ANSI en Unicode.Copies all characters up to the first null character from an unmanaged ANSI string to a managed String, and widens each ANSI character to Unicode.

public:
 static System::String ^ PtrToStringAnsi(IntPtr ptr);
[System.Security.SecurityCritical]
public static string PtrToStringAnsi (IntPtr ptr);
public static string PtrToStringAnsi (IntPtr ptr);
static member PtrToStringAnsi : nativeint -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr) As String

Paramètres

ptr
IntPtr

Adresse du premier caractère de la chaîne non managée.The address of the first character of the unmanaged string.

Retours

Chaîne managée qui contient une copie de la chaîne ANSI non managée.A managed string that holds a copy of the unmanaged ANSI string. Si ptr est null, la méthode retourne une chaîne vide.If ptr is null, the method returns a null string.

Attributs

Exemples

L’exemple suivant utilise la méthode PtrToStringAnsi pour créer une chaîne managée à partir d’un tableau de char non managé.The following example uses the PtrToStringAnsi method to create a managed string from an unmanaged char array.

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

Remarques

PtrToStringAnsi est utile pour le marshaling personnalisé ou pour mélanger du code managé et du code non managé.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Étant donné que cette méthode crée une copie du contenu de la chaîne non managée, vous devez libérer la chaîne d’origine comme il convient.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Cette méthode fournit les fonctionnalités opposées des méthodes Marshal.StringToCoTaskMemAnsi et Marshal.StringToHGlobalAnsi.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

Voir aussi

PtrToStringAnsi(IntPtr, Int32)

Alloue un objet String managé, copie un nombre spécifié de caractères d'une chaîne ANSI non managée dans celui-ci et élargit chaque caractère ANSI au format Unicode.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.

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);
static member PtrToStringAnsi : nativeint * int -> string
Public Shared Function PtrToStringAnsi (ptr As IntPtr, len As Integer) As String

Paramètres

ptr
IntPtr

Adresse du premier caractère de la chaîne non managée.The address of the first character of the unmanaged string.

len
Int32

Nombre d'octets de la chaîne d'entrée à copier.The byte count of the input string to copy.

Retours

Chaîne managée qui contient une copie de la chaîne ANSI native si la valeur du paramètre ptr n'est pas null ; sinon, cette méthode retourne null.A managed string that holds a copy of the native ANSI string if the value of the ptr parameter is not null; otherwise, this method returns null.

Attributs

Exceptions

len est inférieur à zéro.len is less than zero.

Exemples

L’exemple suivant utilise la méthode PtrToStringAnsi pour créer une chaîne managée à partir d’un tableau dechar non managé.The following example uses the PtrToStringAnsi method to create a managed string from an unmanagedchar array.

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

Remarques

PtrToStringAnsi est utile pour le marshaling personnalisé ou pour mélanger du code managé et du code non managé.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. Étant donné que cette méthode crée une copie du contenu de la chaîne non managée, vous devez libérer la chaîne d’origine comme il convient.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. Cette méthode fournit les fonctionnalités opposées des méthodes Marshal.StringToCoTaskMemAnsi et Marshal.StringToHGlobalAnsi.This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

Voir aussi

S’applique à