Marshal.PtrToStringAnsi 메서드

정의

관리되는 String 할당하고 관리되지 않는 ANSI(Windows) 또는 UTF-8(Unix의 경우) 문자열의 전체 또는 일부를 복사합니다.

오버로드

Name Description
PtrToStringAnsi(IntPtr)

관리되지 않는 ANSI 또는 UTF-8 문자열에서 첫 번째 null 문자까지 모든 문자를 관리 String되는 문자로 복사하고 각 문자를 UTF-16으로 확장합니다.

PtrToStringAnsi(IntPtr, Int32)

관리 String되는 문자를 할당하고, 관리되지 않는 ANSI 또는 UTF-8 문자열에서 지정된 수의 문자를 복사하고, 각 문자를 UTF-16으로 확장합니다.

PtrToStringAnsi(IntPtr)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

관리되지 않는 ANSI 또는 UTF-8 문자열에서 첫 번째 null 문자까지 모든 문자를 관리 String되는 문자로 복사하고 각 문자를 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

매개 변수

ptr
IntPtr

nativeint

관리되지 않는 문자열의 첫 번째 문자 주소입니다.

반품

관리되지 않는 문자열의 복사본을 보유하는 관리되는 문자열입니다. ptr이 경우 null 메서드는 null 문자열을 반환합니다.

특성

예제

다음 예제에서는 메서드를 PtrToStringAnsi 사용하여 관리 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);
}

설명

PtrToStringAnsi 는 사용자 지정 마샬링 또는 관리 코드와 관리되지 않는 코드를 혼합할 때 유용합니다. 이 메서드는 관리되지 않는 문자열 내용의 복사본을 만들기 때문에 원래 문자열을 적절하게 해제해야 합니다. 이 메서드는 메서드와 Marshal.StringToCoTaskMemAnsi 반대되는 Marshal.StringToHGlobalAnsi 기능을 제공합니다.

추가 정보

적용 대상

PtrToStringAnsi(IntPtr, Int32)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

관리 String되는 문자를 할당하고, 관리되지 않는 ANSI 또는 UTF-8 문자열에서 지정된 수의 문자를 복사하고, 각 문자를 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

매개 변수

ptr
IntPtr

nativeint

관리되지 않는 문자열의 첫 번째 문자 주소입니다.

len
Int32

복사할 입력 문자열의 바이트 수입니다.

반품

매개 변수 값이 아닌 ptr경우 네이티브 문자열의 복사본을 null 보유하는 관리되는 문자열이고, 그렇지 않으면 이 메서드가 반환됩니다null.

특성

예외

len가 0보다 작습니다.

예제

다음 예제에서는 메서드를 PtrToStringAnsi 사용하여 관리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);
}

설명

PtrToStringAnsi 는 사용자 지정 마샬링 또는 관리 코드와 관리되지 않는 코드를 혼합할 때 유용합니다. 이 메서드는 관리되지 않는 문자열 내용의 복사본을 만들기 때문에 원래 문자열을 적절하게 해제해야 합니다. 이 메서드는 메서드와 Marshal.StringToCoTaskMemAnsi 반대되는 Marshal.StringToHGlobalAnsi 기능을 제공합니다.

추가 정보

적용 대상