C + +에서 마샬링 개요

혼합된 모드에서 네이티브 및 관리 되는 형식 간에 데이터를 가끔 마샬링해야 합니다.Visual Studio 2008도움말 마샬링 라이브러리가 도입 마샬링하고 간단한 방법으로 데이터를 변환 합니다.

마샬링 라이브러리 유무에 관계 없이 사용할 수 있는 marshal_context 클래스.일부 변환은 컨텍스트가 필요 합니다.다른 변환을 사용 하 여 구현할 수 있습니다는 marshal_as 함수.다음 표에 현재 지원 되는 변환, 컨텍스트 필요한 여부 및 어떤 마샬 파일에 포함 해야 합니다.

형식에서

입력

Marshal 메서드

파일을 포함 합니다.

System::String ^

const char *

marshal_context

marshal.h

const char *

System::String ^

marshal_as

marshal.h

char*

System::String ^

marshal_as

marshal.h

System::String ^

const wchar_t *

marshal_context

marshal.h

const wchar_t *

System::String ^

marshal_as

marshal.h

wchar_t*

System::String ^

marshal_as

marshal.h

System::IntPtr

HANDLE

marshal_as

marshal_windows.h

HANDLE

System::IntPtr

marshal_as

marshal_windows.h

System::String ^

BSTR

marshal_context

marshal_windows.h

BSTR

System::String ^

marshal_as

marshal.h

System::String ^

bstr_t

marshal_as

marshal_windows.h

bstr_t

System::String ^

marshal_as

marshal_windows.h

System::String ^

std::string

marshal_as

marshal_cppstd.h

std::string

System::String ^

marshal_as

marshal_cppstd.h

System::String ^

std::wstring

marshal_as

marshal_cppstd.h

std::wstring

System::String ^

marshal_as

marshal_cppstd.h

System::String ^

<char>의 CStringT

marshal_as

marshal_atl.h

<char>의 CStringT

System::String ^

marshal_as

marshal_atl.h

System::String ^

<wchar_t>의 CStringT

marshal_as

marshal_atl.h

<wchar_t>의 CStringT

System::String ^

marshal_as

marshal_atl.h

System::String ^

CComBSTR

marshal_as

marshal_atl.h

CComBSTR

System::String ^

marshal_as

marshal_atl.h

마샬링 컨텍스트가에서 관리 되는 기본 데이터 형식을 마샬링하는 네이티브 형식으로 변환 하는 소멸자를 자동 없는 정리 때만 필요 합니다.마샬링 컨텍스트가 할당 된 네이티브 데이터 형식에서 소멸자가 소멸 됩니다.따라서 컨텍스트는 삭제 될 때까지 컨텍스트가 필요 변환을 잘못 됩니다.마샬링된 값을 저장 하려면 사용자 고유의 변수에 값 복사 해야 합니다.

[!참고]

포함 하는 경우 NULLs 문자열에는 문자열의 마샬링 한 결과 보장 되지 않습니다.포함 된 NULLs 문자열 잘릴 수 발생할 수 있습니다 또는 유지 될 수 있습니다.

사용자 지정 마샬링 종류를 추가할 수 있도록 마샬링 라이브러리를 확장할 수 있습니다.마샬링 라이브러리를 확장 하는 방법에 대 한 자세한 내용은 방법: 마샬링 라이브러리 확장.

이전 버전에서 사용 하 여 데이터 마샬링할 수 p/Invoke.PInvoke에 대한 자세한 내용은 관리 코드에서 네이티브 함수 호출를 참조하십시오.

참고 항목

작업

방법: 마샬링 라이브러리 확장

기타 리소스

C + + 지원 라이브러리