Marshal.PtrToStringAnsi 메서드

정의

관리되는 String을 할당하고 관리되지 않는 ANSI(Windows) 또는 UTF-8(Unix) 문자열의 전체 또는 일부를 해당 개체에 복사합니다.Allocates a managed String and copies all or part of an unmanaged ANSI (on Windows) or UTF-8 (on Unix) string into it.

오버로드

PtrToStringAnsi(IntPtr)

관리되지 않는 ANSI 또는 UTF-8 문자열에서 첫 번째 null 문자가 나올 때까지의 모든 문자를 관리되는 String으로 복사하고 각 문자를 UTF-16으로 확장합니다.Copies all characters up to the first null character from an unmanaged ANSI or UTF-8 string to a managed String, and widens each character to UTF-16.

PtrToStringAnsi(IntPtr, Int32)

관리되는 String을 할당하고, 관리되지 않는 ANSI 또는 UTF-8 문자열에서 지정된 수의 문자를 해당 개체로 복사한 다음 각 문자를 UTF-16으로 확장합니다.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI or UTF-8 string into it, and widens each character to UTF-16.

PtrToStringAnsi(IntPtr)

관리되지 않는 ANSI 또는 UTF-8 문자열에서 첫 번째 null 문자가 나올 때까지의 모든 문자를 관리되는 String으로 복사하고 각 문자를 UTF-16으로 확장합니다.Copies all characters up to the first null character from an unmanaged ANSI or UTF-8 string to a managed String, and widens each character to UTF-16.

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

매개 변수

ptr
IntPtr

관리되지 않는 문자열의 첫 문자 주소입니다.The address of the first character of the unmanaged string.

반환

String

관리되지 않는 문자열의 복사본을 보유하는 관리되는 문자열입니다.A managed string that holds a copy of the unmanaged string. ptrnull이면 메서드가 null 문자열을 반환합니다.If ptr is null, the method returns a null string.

특성

예제

다음 예제에서는 메서드를 사용 하 여 관리 PtrToStringAnsi 되지 않는 배열에서 관리 되는 문자열을 만듭니다 char .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);
}

설명

PtrToStringAnsi 는 사용자 지정 마샬링 또는 관리 코드와 비관리 코드를 혼합할 때 유용 합니다.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. 이 메서드는 관리 되지 않는 문자열 내용의 복사본을 만들기 때문에 원래 문자열을 적절 하 게 해제 해야 합니다.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. 이 메서드는 및 메서드의 반대 기능을 제공 합니다 Marshal.StringToCoTaskMemAnsi Marshal.StringToHGlobalAnsi .This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

추가 정보

적용 대상

제품 Introduced

PtrToStringAnsi(IntPtr, Int32)

관리되는 String을 할당하고, 관리되지 않는 ANSI 또는 UTF-8 문자열에서 지정된 수의 문자를 해당 개체로 복사한 다음 각 문자를 UTF-16으로 확장합니다.Allocates a managed String, copies a specified number of characters from an unmanaged ANSI or UTF-8 string into it, and widens each character to UTF-16.

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

매개 변수

ptr
IntPtr

관리되지 않는 문자열의 첫 문자 주소입니다.The address of the first character of the unmanaged string.

len
Int32

복사할 입력 문자열의 바이트 수입니다.The byte count of the input string to copy.

반환

String

ptr 매개 변수의 값이 null이 아니면 네이티브 문자열의 복사본이 들어 있는 관리되는 문자열이고, 그렇지 않으면 null입니다.A managed string that holds a copy of the native string if the value of the ptr parameter is not null; otherwise, this method returns null.

특성

예외

len가 0보다 작은 경우len is less than zero.

예제

다음 예제에서는 메서드를 사용 하 여 관리 PtrToStringAnsi 되지 않는 배열에서 관리 되는 문자열을 만듭니다 char .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);
}

설명

PtrToStringAnsi 는 사용자 지정 마샬링 또는 관리 코드와 비관리 코드를 혼합할 때 유용 합니다.PtrToStringAnsi is useful for custom marshaling or when mixing managed and unmanaged code. 이 메서드는 관리 되지 않는 문자열 내용의 복사본을 만들기 때문에 원래 문자열을 적절 하 게 해제 해야 합니다.Because this method creates a copy of the unmanaged string's contents, you must free the original string as appropriate. 이 메서드는 및 메서드의 반대 기능을 제공 합니다 Marshal.StringToCoTaskMemAnsi Marshal.StringToHGlobalAnsi .This method provides the opposite functionality of the Marshal.StringToCoTaskMemAnsi and Marshal.StringToHGlobalAnsi methods.

추가 정보

적용 대상

제품 Introduced