다음을 통해 공유


marshal_as

이 메서드는 네이티브 환경과 관리되는 환경 간에 데이터를 변환합니다.

구문

To_Type marshal_as<To_Type>(
   From_Type input
);

매개 변수

input
[in] 변수에 마샬링할 값입니다 To_Type .

Return Value

변환된 값인 형식 To_Type 의 변수입니다 input.

설명

이 메서드는 네이티브 형식과 관리되는 형식 간에 데이터를 변환하는 간소화된 방법입니다. 지원되는 데이터 형식을 확인하려면 C++의 마샬링 개요를 참조 하세요. 일부 데이터 변환에는 컨텍스트가 필요합니다. marshal_context 클래스를 사용하여 해당 데이터 형식을 변환할 수 있습니다.

지원 marshal_as 되지 않는 데이터 형식 쌍을 마샬링하려고 하면 컴파일 시간에 C4996 오류가 생성됩니다. 자세한 내용은 이 오류와 함께 제공된 메시지를 읽어보세요. 이 오류는 C4996 더 이상 사용되지 않는 함수에 대해 생성될 수 있습니다. 이 예제 중 하나는 지원되지 않는 데이터 형식 쌍을 마샬링하는 것입니다.

마샬링 라이브러리는 여러 헤더 파일로 구성됩니다. 모든 변환에는 하나의 파일만 필요하지만 다른 변환을 위해 필요한 경우 추가 파일을 포함할 수 있습니다. 어떤 변환이 어떤 파일과 연결되어 있는지 확인하려면 다음 표를 Marshaling Overview확인합니다. 수행하려는 변환에 관계없이 네임스페이스 요구 사항은 항상 적용됩니다.

System::ArgumentNullException(_EXCEPTION_NULLPTR) 입력 매개 변수가 null이면 throw됩니다.

예시

이 예제에서는 변수 형식으로 const char*System::String 마샬링합니다.

// marshal_as_test.cpp
// compile with: /clr
#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>

using namespace System;
using namespace msclr::interop;

int main() {
   const char* message = "Test String to Marshal";
   String^ result;
   result = marshal_as<String^>( message );
   return 0;
}

요구 사항

헤더 파일:<msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h> 또는 <msclr\marshal_atl.h>

네임스페이스: msclr::interop

참고 항목

C++ 마샬링 개요
marshal_context 클래스