문자열 마샬링
플랫폼 호출은 문자열 매개 변수를 복사하고 필요한 경우 .NET Framework 형식(유니코드)을 관리되지 않는 형식(ANSI)으로 변환합니다. 관리되는 문자열은 변경할 수 없으므로 함수가 반환할 때 플랫폼 호출을 통해 해당 문자열을 관리되지 않는 메모리에서 관리되는 메모리로 다시 복사하지 않습니다.
다음 표에서는 문자열에 대한 마샬링 옵션을 나열하고 용도를 설명하며 해당하는 .NET Framework 샘플에 대한 링크를 제공합니다.
문자열 | 설명 | 예제 |
---|---|---|
값. | 문자열을 In 매개 변수로 전달합니다. | MsgBox |
결과. | 비관리 코드에서 문자열을 반환합니다. | 문자열 |
참조. | StringBuilder를 사용하여 In/Out 매개 변수로 문자열을 전달합니다. | 버퍼 |
값 방식 구조체. | In 매개 변수에 있는 구조체에 문자열을 전달합니다. | 구조체 |
참조 방식 구조체(char[])입니다. | In/Out 매개 변수에 있는 구조체에 문자열을 전달합니다. 관리되지 않는 함수에는 문자 버퍼에 대한 포인터가 필요하며 버퍼 크기는 구조체의 멤버입니다. | 문자열 |
참조 방식 구조체(char[]). | In/Out 매개 변수에 있는 구조체에 문자열을 전달합니다. 관리되지 않는 함수에는 포함된 문자 버퍼가 있어야 합니다. | OSInfo |
값 방식 클래스(char[])입니다. | 클래스에 문자열을 전달합니다(클래스는 In/Out 매개 변수임). 관리되지 않는 함수에는 문자 버퍼에 대한 포인터가 있어야 합니다. | OpenFileDlg |
값 방식 클래스(char[]). | 클래스에 문자열을 전달합니다(클래스는 In/Out 매개 변수임). 관리되지 않는 함수에는 포함된 문자 버퍼가 있어야 합니다. | OSInfo |
값 형식 문자열 배열. | 값으로 전달되는 문자열의 배열을 만듭니다. | 배열 |
값 형식 문자열을 포함하는 구조체의 배열. | 문자열을 포함하는 구조체의 배열을 만들고 배열을 값으로 전달합니다. | 배열 |
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET