marshal_as
このメソッドは、ネイティブ環境とマネージ環境との間でデータ変換を行います。
To_Type marshal_as<To_Type>(
From_Type input
);
パラメータ
- [入力] input
To_Type 変数にマーシャリングする値。
戻り値
input の変換後の値である To_Type 型の変数。
解説
このメソッドは、ネイティブ型とマネージ型との間でデータを変換する簡単な方法です。サポートされているデータ型を確認するには、「C++ におけるマーシャリングの概要」を参照してください。一部のデータ変換ではコンテキストが必要になります。このようなデータ型は、marshal_context クラスを使用して変換できます。
サポートされていないデータ型のペアをマーシャリングしようとすると、marshal_as は、コンパイル時にエラー C4996 を生成します。詳細については、このエラーと一緒に表示されるメッセージを参照してください。C4996 エラーは、非推奨の関数を使用していなくても発生する場合があります。たとえば、サポートされていないデータ型のペアをマーシャリングしようとした場合が該当します。
マーシャリング ライブラリは、複数のヘッダー ファイルで構成されます。各変換で必要になるファイルは 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