Marshal.PtrToStringAnsi 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관리되는 String을 할당하고 관리되지 않는 ANSI(Windows) 또는 UTF-8(Unix) 문자열의 전체 또는 일부를 해당 개체에 복사합니다.
오버로드
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
관리되지 않는 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.StringToHGlobalAnsi 메서드의 Marshal.StringToCoTaskMemAnsi 반대 기능을 제공합니다.
추가 정보
적용 대상
PtrToStringAnsi(IntPtr, Int32)
- 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.StringToHGlobalAnsi 메서드의 Marshal.StringToCoTaskMemAnsi 반대 기능을 제공합니다.
추가 정보
적용 대상
.NET