Marshal.PtrToStringAnsi 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관리되는 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 기능을 제공합니다.