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