Share via


문자열 마샬링

업데이트: 2007년 11월

플랫폼 호출에서는 필요하면 문자열 매개 변수를 .NET Framework 형식인 유니코드에서 관리되지 않는 형식인 ANSI로 변환하여 복사합니다. 관리되는 문자열은 변경할 수 없으므로 플랫폼 호출에서는 함수 반환 시 관리되지 않는 메모리에서 관리되는 메모리로 문자열을 다시 복사하지 않습니다.

다음 표에서는 문자열의 마샬링 옵션을 보여 주고 각 옵션의 용도에 대해 설명한 다음 해당되는 .NET Framework 샘플의 링크를 제공합니다.

문자열

설명

샘플

값으로

문자열을 In 매개 변수를 통해 전달합니다.

MsgBox

결과로

비관리 코드에서 문자열을 반환합니다.

Strings

참조로

StringBuilder를 사용하여 문자열을 In/Out 매개 변수를 통해 전달합니다.

Buffers

구조체에서 값으로

In 매개 변수인 구조체에서 문자열을 전달합니다.

Structs

구조체에서 참조로(char*)

In/Out 매개 변수인 구조체에서 문자열을 전달합니다. 관리되지 않는 함수에서는 문자 버퍼에 대한 포인터를 필요로 하며 버퍼 크기는 구조체의 멤버입니다.

Strings

구조체에서 참조로(char[])

In/Out 매개 변수인 구조체에서 문자열을 전달합니다. 관리되지 않는 함수에서는 포함된 문자 버퍼를 필요로 합니다.

OSInfo

클래스에서 값으로(char*)

클래스에서 문자열을 전달합니다. 클래스는 In/Out 매개 변수입니다. 관리되지 않는 함수에서는 문자 버퍼에 대한 포인터를 필요로 합니다.

OpenFileDlg

클래스에서 값으로(char[])

클래스에서 문자열을 전달합니다. 클래스는 In/Out 매개 변수입니다. 관리되지 않는 함수에서는 포함된 문자 버퍼를 필요로 합니다.

OSInfo

문자열 배열로서 값으로

값으로 전달되는 문자열 배열을 만듭니다.

Arrays

문자열이 포함된 구조체 배열로서 값으로

문자열을 포함하는 구조체 배열을 만들며 이 배열이 값으로 전달됩니다.

Arrays

참고 항목

개념

플랫폼 호출 데이터 형식

클래스, 구조체 및 공용 구조체 마샬링

형식 배열 마샬링

기타 마샬링 샘플

기타 리소스

플랫폼 호출을 사용하여 데이터 마샬링