marshal_as

このメソッドは、ネイティブ コードとマネージ環境との間でデータを変換します。

To_Type marshal_as<To_Type>(
   From_Type input 
);

パラメーター

  • [入力] input
    To_Type に変数をマーシャリングする値。

戻り値

変数の型 To_Typeinputの変換後の値である。

解説

このメソッドは、ネイティブ コードとマネージ型の変換前のデータに簡単な方法です。どのデータ型がサポートされるかを判断するには、 C++ におけるマーシャリングの概要を参照してください。あるデータ変換はコンテキストを必要とします。marshal_context クラスを使用してそれらのデータ型を変換できます。

サポートされていないデータ型のペアをマーシャリングしようとすると、 marshal_as は、コンパイル時にエラー C4996 を生成します。詳細については、このエラーで指定されたメッセージを読み取ります。C4996 のエラーが多くには、違反した関数に対して生成できます。このの 1 例はサポートされていないデータ型のペアをマーシャリングする場合があります。

マーシャリング ライブラリは複数のヘッダー ファイルで構成されます。変換が 1 ファイルが一つ必要ですが、他の変換に必要とする追加ファイルを含めることができます。ファイル、 Marshaling Overviewのテーブルの外観と操作性変換が関連付けられているかを確認する。どのに関係なくを変換する場合や、名前空間の必要条件が常に有効になります。

使用例

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

参照

関連項目

marshal_context クラス

概念

C++ におけるマーシャリングの概要