このメソッドは、ネイティブ コードとマネージ環境との間でデータを変換します。
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